Micro111_modificado - Copia.docx

  • Uploaded by: Samuel Aruquipa
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Micro111_modificado - Copia.docx as PDF for free.

More details

  • Words: 6,618
  • Pages: 28
MICRO CONTROLADORES I INGENIERÍA SISTEMAS ELECTRÓNICOS

UNIDAD ARITMÉTICA LÓGICA IMPLEMENTACION DE LA UNIDAD ARITMÉTICA LÓGICA CON EL PROGRAMA DE SIMULACIÓN PROTEUS

INTEGRANTES:

ING:

Paralelo :

La paz-Bolivia

(2018)

INDICE

I.ABSTRACT.........................................................................................................................4 II.AGRADECIMIENTO.........................................................................................................4 II.DEDICATORIA..................................................................................................................4 III.RESUMEN......................................................................................................................... IV.INTRODUCCIÓN..............................................................................................................5 V.OBJETIVOS........................................................................................................................5 Objetivo General Objetivo Específico VI.MARCO TEÓRICO.............................................................................................................5 Unidad Aritmética Lógica Operaciones de la ALU Compuertas Lógicas Compuerta AND Compuerta OR compuerta NOT compuerta de multiplexor compuerta comparador VII.Desarrollo de la ALU...........................................................................................................................................9 Bloque AND Bloque OR Bloque XOR SUMADOR RESTADOR,XOR y AND MULTIPLEXOR VIII.ILUSTRACIONES INTERNAS DE LA UNIDAD ARITMÉTICA LÓGICA EN PROTEUS...................................................................................................................................6 ALU genera

bloque de and composición interna de bloque and bloque or composición interna de bloque or bloque xor composición interna de bloque xor composición de sumador restador composición interna de sumador restador composición de full adder bloque de mux composición interna de mux de 4 partes parte 1,2,3,4 bloque de mux IX.BLOQUE DE LA MEMORIA..................................................................................................................................14 BLOQUE DE REGISTRO EN BASE DE FLIP FLOPS Composición interna del registro en base de flip flops D BLOQUE DE BANDERAS “PARIDAD” Composición interna de bloque Paridad BLOQUE DE BANDERAS “CARRY" Composición interna de bloque Paridad X.CONCLUSIONES.............................................................................................................15 XI.RECOMENDACIONES...................................................................................................16 XII.REFERENCIAS..............................................................................................................16

I.ABSTRACT Due to the demand to improve the capacity of the processors to handle the most complex and challenging processors, the integration of several processor cores in a chip has been achieved. Even so, the load on the processor is not less in the generic system. An arithmetic logic unit (ALU) is the heart of all microprocessors. It is a combinatorial logical unit that performs its logical or arithmetic operations. ALU is becoming smaller and more complex today to allow the development of a more powerful but smaller computer. In this work, a proposed 4-bit ALU has been designed so that the benefits of all the calculations have been made and are available at the same time. KEYWORDS: Door, arithmetic logic unit, processor

AGRADECIMIENTO Agradecemos a todas las personas que hicieron posible la elaboración de nuestro trabajo, entre ellos a nuestro Docente ING. GERMAN JESUS PEREIRA , compañeros que formaron parte de esta gran aventura.

III.RESUMEN

II.DEDICATORIA A nuestro Docente por su tiempo compartido Y por impulsarnos el desarrollo de nuestra formación profesional y por apoyarnos en su momento en la elaboración de nuestro trabajo, también a nuestros amigos, quienes nos brindaron todo su apoyo y motivación.

Al aumentar la demanda de mejorar la capacidad de los procesadores más complejos y desafiantes ha resultado en la integración de una serie de núcleos de procesador en un chip. Todavía la carga de en el procesador no es menos en el sistema genérico. Una unidad de lógica aritmética (ALU) es el corazón de todos los microprocesadores. Es una unidad lógica combinatoria que realiza sus operaciones lógicas o aritméticas. ALU es cada vez más pequeño y más complejo hoy en día para permitir el desarrollo de un ordenador más potente pero más pequeño. En este trabajo se a ha propuesto una de 4 bits ALU ha sido diseñado para los beneficios de todos los cálculos, al mismo tiempo también en el diseño por unidades de una ALU que se presentan en los sistemas digitales, donde realizaremos una implementación de algunos operadores aritméticos donde constara de una Unidad aritmética. Sumador - restador de Unidad lógica Operaciones lógicas AND, OR, NOT, XOR. El formato de cada número está conformado por una trama de n-bits: que conforman un número en complemento a dos, aparte se le agregan 2 bits para representar el signo y números que no tienen representación logarítmica, como el cero, indeterminaciones e indefiniciones.

IV.INTRODUCCIÓN Este proyecto fue realizado para poner en práctica lo aprendido durante el curso, ya que antes de empezarlo se tenía un conocimiento casi nulo sobre los temas vistos, como el funcionamiento de una compuerta lógica, ya sea positiva o negativa. A su vez temas nuevos, como la utilización de un mapa de Karnaugh. Así mismo el proyecto es orientado a la implementación de las compuertas lógicas, su comportamiento, etc. Puesto que existen circuitos integrados ya existentes que hacen la función de una manera más fácil y sencilla, pero a su vez desconocemos su funcionamiento interno, ese es el ¿por qué? de la realización de este proyecto, ver, analizar y comprender como funcionan internamente dichos circuitos, como son los multiplexores, sumadores, restadores, etc. A su vez se hizo un análisis de como el lenguaje binario es implementado en las compuertas lógicas para un mejor entendimiento “simulación”

El sistema de numeración con base logarítmica permite realizar multiplicaciones, divisiones de una manera más simple que un sistema de numeración de punto fijo pero con la dificultad que la realización de operaciones de suma y resta, se vuelve más compleja. Un beneficio obtenido al utilizar un sistema de numeración con base logarítmica, es que el rango numérico puede incrementarse en comparación con el sistema de números en punto fijo, al igual que el punto flotante. Se debe encontrar el número de bits de palabra adecuado, el cual permita tener un intervalo numérico que produzca resultados acordes a la aplicación que se le esté dando al sistema.

5.OBJETIVOS Objetivo General 

Las operaciones que se pueden desarrollar en las ALU’s descritas anteriormente son sumas, con la representación adecuada de los dígitos binarios (en complemento a dos), con la misma unidad sumadora se pueden implementar las restas. Para el desarrollo de multiplicaciones es necesaria la implementación de un algoritmo y de hardware adicional (incrementando el retardo de esta operación) pero solo lo realizaremos con sumas. Caso similar ocurre con la implementación de las divisiones. De esta manera al utilizar estas unidades en la solución de sistemas complejos que involucran un uso mayor que el usual de instrucciones aritméticas, tales como filtros digitales y transformadas, el tiempo requerido para la ejecución de los algoritmos se eleva.

Desarrollar e implementar la arquitectura de una unidad aritmética lógica en base logarítmica en un dispositivo de lógica programable. Objetivo Específico





 



Determinar el número de bits que se necesitan para la representación de los números en base logarítmica. Tener amplio conocimiento del funcionamiento de y arquitectura de la ALU Conocer el funcionamiento ALU mediante la utilización de puertas lógicas Establecer el los enlaces de los dispositivos para entender los diferentes funcionamiento de las funciones.

VI.MARCO TEORICO

de Proceso, está estructurado por tres unidades operativamente diferentes:

Unidad Aritmética Lógica La Unidad aritmético-lógica (ALU por sus siglas en inglés: Arithmetic Logic Unit) es un contador digital capaz de realizar las operaciones aritméticas y lógicas entre los datos de un circuito; suma, resta, multiplica y divide, así como establece comparaciones lógicas a través de los condicionales lógicos “si”, “no”, y, “o”. Desde los circuitos más simples, como relojes y calculadoras, hasta complejos circuitos, como los microchips actuales, todos incluyen al menos una Unidad aritmético-lógica, que varía su poder y complejidad según su finalidad. Las computadoras más modernas, que incluyen procesadores de múltiples núcleos, incorporan a su vez múltiples dispositivos ALU, con una diagramación compleja y potente. Pero yendo a los orígenes, fue el matemático húngaro-estadounidense John von Neumann quien, en el año 1945, a través de un informe fundacional sobre el desarrollo del Computador Automático Variable Discreto Electrónico (EDVAC, por sus siglas en inglés), propuso la idea de la ALU, explicando que es un requisito indispensable para cualquier computadora el poder efectuar operaciones matemáticas básicas. En la actualidad, las operaciones que realiza una ALU entre los distintos datos, que deben ser iguales a los que emplea el circuito digital, es la representación del número binario de complemento a dos. Sin embargo, no siempre fue así: en sus comienzos, las distintas computadoras utilizaron una amplia gama de sistemas numéricos, como el Complemento a uno, o el sistema decimal, adecuando el diseño de las ALU a cada sistema. A través del tiempo, el Complemento a dos resultó ser el preferido por la industria, al ser el de mayor simplicidad para la diagramación del circuito de la ALU. Lo que definimos como CPU (Central Process Unit) o Unidad Central

1. La ALU o unidad aritmética lógica. 2. La UC o unidad de control. 3. Los registros internos. Operaciones de la ALU 

Desplazamientos: lógicos, circulares y aritméticos.  Operaciones lógicas: NOT, AND, OR, XOR.  Operaciones aritméticas: suma, resta, multiplicación y división. Estas operaciones se pueden ejecutar de diversas maneras, dependiendo del paralelismo que implemente en cada una de ellas. A mayor paralelismo, mayor rapidez; pero habrá más unidades funcionales, con lo que la ALU ocupará más superficie de silicio y por tanto será más cara. Las operaciones básicas y más frecuentes (suma-7resta, desplazamientos y operaciones lógicas) siempre se implementan con una unidad combinacional específica. Los procesadores más potentes incorporan unidades específicas para realizar las operaciones de multiplicación y división en coma flotante, quedando para coprocesadores aritméticos Compuertas Lógicas Compuerta AND Es una puerta lógica digital que implementa la conjunción lógica -se comporta de acuerdo a la tabla de verdad mostrada a la derecha. Esta tendrá una salida ALTA (1), únicamente cuando los valores de ambas entradas sean ALTOS. Si algunas de estas entradas no son ALTAS, entonces tendrá un valor de salida BAJA (0). Desde el punto de vista funcional, la puerta AND es un multiplicador pues su salida es el producto de sus entradas.1 Adicionalmente, encuentra el mínimo entre dos dígitos binarios, así como la puerta OR encuentra el máximo. La puerta AND puede usarse como inhibidor. los datos que llegan

a una de las entradas (A) se transmiten a la salida (C) mientras la otra entrada (B) reciba 1 (VDD) si esta entrada es 0 (GND) la salida en (C) es 0 independientemente de la señal en (A). Para que el bit inhibidor (b) se active con 1 (VDD) en lugar de con 0, sería necesario añadir una puerta

compuerta or La puerta OR o compuerta OR es una puerta lógica digital que implementa la disyunción lógica -se comporta de acuerdo a la tabla de verdad mostrada a la derecha. Cuando todas sus entradas están en 0 (cero) o en BAJA, su salida está en 0 o en BAJA, mientras que cuando al menos una o ambas entradas están en 1 o en ALTA, su SALIDA va a estar en 1 o en ALTA. En otro sentido, la función de la compuerta OR efectivamente encuentra el máximo entre dos dígitos binarios, así como la función AND encuentra el mínimo. Se puede ver claramente que la salida X solamente es "0" (0 lógico, nivel bajo) cuando la entrada A como la entrada B están en "0". En otras palabras, la salida X es igual a 0 cuando la

NOT en dicha entrada.

entrada A y la entrada B son 0.

Estructura interna de la compuerta OR Compuerta not Estructura interna de la compuerta AND

Tabla de la compuerta AND

En lógica digital, un inversor, puerta NOT o compuerta NOT es una puerta lógica que implementa la negación lógica . A la derecha se muestra la tabla de verdad. Siempre que su

entrada está en 0 (cero) o en BAJA, su salida está en 1 o en ALTA, mientras que cuando su entrada está en 1 o en ALTA, su SALIDA va a estar en 0 o en BAJA. La función física del inversor es la de cambiar en su salida el nivel del voltaje de su entrada entre

Estructura interna de la compuerta MUX los definidos como lógico ALTO Y lógico BAJO

Estructura interna de la compuerta NOT MULTIPLEXor Los multiplexores son circuitos combinacional, es con varias entradas y una única salida de datos. Están dotados de entradas de control capaces de seleccionar una, y sólo una, de las entradas de datos para permitir su transmisión desde la entrada seleccionada hacia dicha salida. En el campo de la electrónica el multiplexor se utiliza como dispositivo que puede recibir varias entradas y transmitirlas por un medio de transmisión compartido. Para ello lo que hace es dividir el medio de transmisión en múltiples canales, para que varios nodos puedan comunicarse al mismo tiempo. Una señal que está multiplexada debe de multiplexores en el otro extremo.

Tabla de la compuerta MUX Compuerta de multiplexor En electrónica digital, un de multiplexor es un circuito combinacional que tiene una entrada de información de datos d y n entradas de control

que sirven para seleccionar una de las 2n salidas, por la que ha de salir el dato que presente en la entrada. Esto se consigue aplicando a las entradas de control la combinación binaria correspondiente a la salida que se desea seleccionar. Por ejemplo, si queremos que la información que tenemos en la entrada d, salga por la salida S4, en la entrada de control se ha de poner, de acuerdo con el peso de la misma, el valor 100, que es el 4 en binario.

Un circuito comparador combinatorio compara dos entradas binarias (A y B de n bits) para indicar la relación de igualdad o desigualdad entre ellas por medio de "tres banderas lógicas" que corresponden a las relaciones A igual B, A mayor que B y A menor que B. Cada una de estas banderas se activará solo cuando la relación a la que corresponde sea verdadera, es decir, su salida será 1 y las otras dos producirán una salida igual a cero.

En el campo de las telecomunicaciones el de multiplexor es un dispositivo que puede recibir a través de un medio de transmisión compartido una señal compleja multiplexada y separar las distintas señales integrantes de la misma encaminándolas a las salidas correspondientes.

Dentro de la familia de circuitos TTL se les denomina a estos circuitos con el número 7485 y manejan entradas de 4 bits, además de que también se les puede conectar en cascada para manejar entradas más grandes.

La señal compleja puede ser tanto analógica como digital y estar multiplexada en cualquiera de las distintas formas posibles para cada una de ellas.

Estructura interna de la compuerta DEMUX

Tabla de la compuerta DEMUX Compuerta comparador

Estructura interna COMPARADOR

de

la

compuerta

ALU a0 a1 a2 a3

VII.Desarrollo de la ALU

R1

b0 b1 b2 b3

R3

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

s0 s1 s2 s3 s4 s5 s6

d0 d1 d2 d3

c

c

s0 s1 s2 s3 s4 s5 s6 s7

1. AND  Internamente compuesta por compuertas and 2. OR  Internamente compuesta por compuertas or 3. XOR  Internamente compuesta por compuertas xor 4. SUMADOR RESTADOR  Internamente compuesta por compuertas XOR y AND  Internamente compuesta bloques ful adder 5. MULTIPLEXOR Internamente compuesta por 4 bloques de compuertas Not, And,Or

0 0 1 0

R0

R2

0 1 0 0

Constituida por 5 bloques internos.



a0 a1 a2 a3

11 12 13 15 16 17 18 19

CCT012

D0 D1 D2 D3 D4 D5 D6 D7

U49

CE OE VPP 20 22 1

1 1 1 0

1

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

27C256

CARRY

sub

c s7

c Co

0

s7 CCT008

Co

PARIDAD d0 d1 d2 d3

ALU a0 a1 a2 a3

a0 a1 a2 a3

R1 R2

0 1 0 0

b0 b1 b2 b3

R3

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

c s7

Co

0

DET. CEROS

Co

PARIDAD d0 d1 d2 d3

d0 P d1 d2 d3

d0 d1 d2 d3

0 P

CCT013

d0 d1 d2 d3

d0 Z d1 d2 d3

d0 Z d1 d2 d3

d3

d3 N

s0 s1 s2 s3 s4 s5 s6 s7

0

CCT015

N

CCT012 11 12 13 15 16 17 18 19

CCT015

D0 D1 D2 D3 D4 D5 D6 D7

U49

REG D

27C256

CE OE VPP 20 22 1

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

REG D

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

0 N

DET. NEG. d3 N

Z

DET. NEG.

0 Z

CCT014

d3

0

CCT014

DET. CEROS

c

P

CCT013

s7 CCT008

d0 d1 d2 d3

c

c

0

d0 d1 d2 d3

0

D0 D1 D2 D3

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

1

1 0

d0 d1 d2 d3

0

D0 D1 D2 D3

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

0

1

1 1 1 0

s0 s1 s2 s3 s4 s5 s6

CARRY

0 0 1 0

R0

d0 P d1 d2 d3

0 0

 VIII.ILUSTRACIONES INTERNAS DE LA UNIDAD ARITMETICA LOGICA EN PROTEUS

o ALU general Forma interna

AND a0 a1 a2 a3

a0 a1 a2 a3

b0 b1 b2 b3

b0 b1 b2 b3

a0 a1 a2 a3

a0 a1 a2 a3

b0 b1 b2 b3

b0 b1 b2 b3

And0 And1 And2 And3

And0 And1 And2 And3

CCT007

OR Or0 Or1 Or2 Or3

Or0 Or1 Or2 Or3

MUX1 And0 And1 And2 And3

CCT010

a0 a1 a2 a3

b0 b1 b2 b3

b0 b1 b2 b3

Or_0 Or_1 Or_2 Or_3

Xor0 Xor1 Xor2 Xor3

Xor0 Xor1 Xor2 Xor3

Xor0 Xor1 Xor2 Xor3

Xor_0 Xor_1 Xor_2 Xor_3

s4 s3 s2 s1 s0

a0 a1 a2 a3

b0 b1 b2 b3

b0 b1 b2 b3 S4 S3 S2 S1 S0

R1

CCT011

re0

r0

re1

r1

re2

r2

re3

r3

c0

c

R3 d3

1 1 1 1

d2

SUMADOR RESTADOR a0 a1 a2 a3

R0

R2 Or0 Or1 Or2 Or3

XOR a0 a1 a2 a3

And_0 And_1 And_2 And_3

r0 r1 r2 r3

res0 res1 res2 res3

s6

S6

s5

S5

d1 d0

CCT004

CCT001

Acá se puede observar la composición interna del bloque ALU. A continuación se analizara la composición interna de los bloques que

se encuentran dentro del bloque ALU.

o Bloque de and

o Bloque Or

AND a0 a1 a2 a3

a0 a1 a2 a3

b0 b1 b2 b3

b0 b1 b2 b3

OR

And0 And1 And2 And3

And0 And1 And2 And3

CCT007

a0 a1 a2 a3

a0 a1 a2 a3

b0 b1 b2 b3

b0 b1 b2 b3

Or0 Or1 Or2 Or3 CCT010

o Composición interna de bloque Or

o Composición interna de bloque and U17

Or0 Or1 Or2 Or3

?

U21

?

a0

a0 And0

Or0

b0

b0

OR

AND

U18

?

U22

?

a1

a1

Or1

And1

b1

b1

OR

AND

U19

?

U23

?

a2

a2

Or2

And2

b2

b2

OR

AND

U20

?

U24

?

a3

a3

Or3

And3

b3

b3 AND

OR

o Bloque Xor

o Bloque SUMADOR-RESTADOR

SUMADOR RESTADOR

XOR a0 a1 a2 a3

a0 a1 a2 a3

b0 b1 b2 b3

b0 b1 b2 b3

Xor0 Xor1 Xor2 Xor3

Xor0 Xor1 Xor2 Xor3

CCT011

o Composición interna de bloque Xor

b0

3 2

b0 b1 b2 b3

s4 s3 s2 s1 s0

S4 S3 S2 S1 S0

r0

re1

r1

re2

r2

re3

r3

c0

c

CCT001

Xor0

o La composición de sumador restador se encuentra a base de Full Adder´s.

?

U25:B b1

b0 b1 b2 b3

re0

1

74HC386

a1

a0 a1 a2 a3

?

U25:A a0

a0 a1 a2 a3

5 4 6

U46:A 1

Inc

Xor1

3 2

re0

74HC386

74HC386

U47 U46:B

?

U25:C a2 b2

a0 b0

5 4 6

AND 74HC386

8 10 9

U50

Xor2

AS0

U48

74HC386 AND

?

U25:D a3 b3

12 11 13 74HC386

Xor3

OR

o Composición interna de sumador restador 1

U1

a0

FULL ADDER 1

1

U9

AND

0

XOR

U2

0

U10

a1

Inc

re0

a0

AS0

1 re0

b0

AND

0

XOR

U3

CCT002

0

U11

a2

FULL ADDER 2 AND

1

XOR

U4

1

U12

a3

Ae1 a1

0

re1 AS1

re1 b1

AND

0

XOR

U5

0

U13

b0

CCT003

AND

0

XOR

U6

FULL ADDER 3

0

U14

b1

Ae2 AND

0

XOR

U7

0

U15

b2

a2

re2 b2

AND

1

0

re2 AS2

CCT005 XOR

U8

1

U16

b3

FULL ADDER 4

AND XOR

S0

Ae3

re3

?

co

1

a3 S4

S2

re3 b3

S3

0

S1

1

0

1

0

c0

CCT006

o Bloque de mux o Composición interna de Mux de 4 partes MUX1 And0 And1 And2 And3

And_0 And_1 And_2 And_3

R0 R1 R2

Or0 Or1 Or2 Or3

Or_0 Or_1 Or_2 Or_3

R3 d3

1 1 1 1

U26:A U29

Xor_0 Xor_1 Xor_2 Xor_3

U26:B 3 4 5

Or_0

6

74HC11

2 3

U26:C

4 5

U30 9 10 11

Xor_0

U31

d0

74HC4072 8

74HC11

r0 r1 r2 r3

res0 res1 res2 res3

NOT

U27:A 1 2 13

res0

12

S5

S5

S6

s5

S6

74HC11

s6

U28:A 1

NOT

d1

12

74HC11 NOT

d2 Xor0 Xor1 Xor2 Xor3

1 2 13

And_0

U32:C 9 10 11

8

CCT004 74HC11

R0

CARRY

 BLOQUE DE “PARIDAD”

 IV.BLOQUE DE LA MEMORIA

BANDERAS

CCT008

U49

CCT012 10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

1 1 1 0

1

20 22 1

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

D0 D1 D2 D3 D4 D5 D6 D7

11 12 13 15 16 17 18 19

PARIDAD

s0 s1 s2 s3 s4 s5 s6 s7

CE OE VPP 27C256

d0 d1 d2 d3

0

d0 P d1 d2 d3

P

CCT013

o Composición interna de bloque Paridad

U53:A

U57

1

d0

3 2

d1

U53:B

U60

5

d2

U54

NOT

74LS386

AND

4 6

d3

U56

NOT

74LS386

P

U53:C d0

AND

10 9

d2

La memoria fue grabada con ayuda del programa Max Loader, con el cual se cargo un archivo de extención(.bin)

U61

8

U53:D

U62

12

d2

U55

NOT

74LS386

AND

11 13

d1

74LS386

NOT

o BLOQUE DE BANDERAS “CARRY”

CARRY c s7

c Co

0

s7 CCT008

Co

o Composición interna de bloque Paridad U52

?

c s7 AND

Co

DET. CEROS  BLOQUE DE DETECTOR DE NEGATIVOS

 BLOQUE DE REGISTRO EN BASE DE FLIP FLOP

CCT014

DET. NEG. d3

REG D

0

d3 N

d0 d1 d2 d3

N CCT015

D0 D1 D2 D3

0

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

1 o Composición interna del bloque detector de negativos.

U74 d3 N

1

0 0 o Composición interna del registro en base de flip flops D

4013

12 Q

13

Q2

CLK

Q

Q

4013

2

Q1 4013

12 Q

Q0 2 Q

4013

9

11

1 Q D

CLK 3

5 13 Q

CLK

D 9

11

1 5

D

Q

?

CK

NOT D0

74HC4072

CLK

6

Z

3

U58:B U58:A

U73 1

4 5

U59:A

D3 D2 D1

U72:A

S

d2 d3

2 3

R

d0 d1

4

8

o Composición interna del bloque detector de ceros.

S

CCT014

R

Z

10

0

d0 Z d1 d2 d3

6

d0 d1 d2 d3

S

DET. CEROS

R

CCT013

4

8

D

S

 BLOQUE DE DETECTOR DE CEROS

R

PARIDAD

10

U59:B

Q3

AND

ALU a0 a1 a2 a3

APLICACIONES DE LA ALU EN OPERACIONES ARITMETICAS

a0 a1 a2 a3

R2

1 1 0 0

R3

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

1° EJERCICIO

R1

b0 b1 b2 b3

s0 s1 s2 s3 s4 s5 s6

CARRY

1 1 0 0

R0

c s7

Co

Co

PARIDAD d0 d1 d2 d3

d0 d1 d2 d3

c

0

c s7 CCT008

0

d0 P d1 d2 d3

P

CCT013

DET. CEROS

c d0 d1 d2 d3

0

d0 Z d1 d2 d3

Z

CCT014

DET. NEG.

[(3*2)-2+1]/5

d3 CCT012 10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

0 1 0 0

N

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

20 22 1

1

0

d3 N

U49 11 12 13 15 16 17 18 19

D0 D1 D2 D3 D4 D5 D6 D7

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

REG D d0 d1 d2 d3

D0 D1 D2 D3

0

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

0

CE OE VPP

0

27C256

0

3.- LIB A [2] // Se procede a leer el segundo dato a introducir en este caso para realizar una multiplicación 4.- Nota: se toma una variable auxiliar para realizar un conteo [d] 5.- ADD // Se suma la variable guardada en ”a” , con la introducida en “b”. 6.- Nota: el contador nos indica cuantas veces se ALU a0 a1 a2 a3

a0 a1 a2 a3

R1 R2

1 1 0 0

b0 b1 b2 b3

R3

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

s0 s1 s2 s3 s4 s5 s6

CARRY

0 1 1 0

R0

c s7

Co CCT008

0 Co

PARIDAD d0 d1 d2 d3

d0 d1 d2 d3

c

c s7

d0 P d1 d2 d3

0 P

CCT013

DET. CEROS

c d0 d1 d2 d3

d0 Z d1 d2 d3

0 Z

CCT014

DET. NEG. d3

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

1 1 1 0

1

20 22 1

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

1.- LIB B [3] // Se procede a introducir el primer número y leerlo para verificar su entrada. 2.- ck=1; ck=0 // Se procede a guardar en “a”.

0 N

D0 D1 D2 D3 D4 D5 D6 D7

11 12 13 15 16 17 18 19

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

REG D d0 d1 d2 d3

0

D0 D1 D2 D3

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

1

CCT009

1

CE OE VPP 27C256

CODIGO DE MAQUINA

d3 N

U49

CCT012

0 0

repite el procedimiento de ADD. 7.- ck=1, ck=0 [6]// Se guarda el resultado obtenido en “a”.

8.- LIB B // Se introduce el siguiente dato y se lo identifica. 9.- ADD// Se suma el dato introducido y el guardado en “a”. 10.- ck=1, ck=0 [4]// Se guarda el resultado obtenido en “a”. ALU a0 a1 a2 a3

a0 a1 a2 a3

R1 R2

0 1 0 0

b0 b1 b2 b3

R3

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

s0 s1 s2 s3 s4 s5 s6

CARRY

0 0 1 0

R0

c s7

Co CCT008

1 Co

PARIDAD d0 d1 d2 d3

d0 d1 d2 d3

c

c s7

0

d0 P d1 d2 d3

P

CCT013

DET. CEROS

c d0 d1 d2 d3

ALU

0

d0 Z d1 d2 d3

a0 a1 a2 a3

Z

CCT014

DET. NEG. d3

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

1

N

20 22 1

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

D0 D1 D2 D3 D4 D5 D6 D7

11 12 13 15 16 17 18 19

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

0

D0 D1 D2 D3

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

CCT009

1

1 0 1 0

1 0 0 0

b0 b1 b2 b3

R3

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

s0 s1 s2 s3 s4 s5 s6

c s7

c

c Co CCT008

Co

PARIDAD d0 d1 d2 d3

d0 P d1 d2 d3

0

CCT013

DET. CEROS

c d0 d1 d2 d3

d0 Z d1 d2 d3

d3

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

1 1 1 0

1

d3 N

20 22 1

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

11 12 13 15 16 17 18 19

0

D0 D1 D2 D3

0

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

1

CCT009

0 1 0

R3

s0 s1 s2 s3 s4 s5 s6

CARRY

0 0 0 0

R1

c s7

Co

0 Co

PARIDAD d0 d1 d2 d3

d0 d1 d2 d3

c

c s7 CCT008

d0 P d1 d2 d3

1 P

CCT013

DET. CEROS

c d0 d1 d2 d3

d0 Z d1 d2 d3

1 Z

CCT014

DET. NEG.

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

0 0 0 0

0

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

0 1 0

14.- LIB B // Se introduce el siguiente dato y se lo identifica.

1

d3 N

20 22 1

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

0 N

U49

CCT012

CE OE VPP 27C256

D0 D1 D2 D3

CE OE VPP

d0 d1 d2 d3

REG D d0 d1 d2 d3

REG D d0 d1 d2 d3

Z

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

0

d3 N

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

d3

N D0 D1 D2 D3 D4 D5 D6 D7

11 12 13 15 16 17 18 19

0

DET. NEG. U49

D0 D1 D2 D3 D4 D5 D6 D7

R0

b0 b1 b2 b3

CCT014

CCT012

Z

N

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

R2

s0 s1 s2 s3 s4 s5 s6

P

1

d0 Z d1 d2 d3

ALU a0 a1 a2 a3

1 1 1 1

0

s7

d0 d1 d2 d3

CCT013

DET. CEROS

c

27C256

ALU

R2

P

U49

20 22 1

1

a0 a1 a2 a3

R1

1

d0 P d1 d2 d3

CCT014

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

0 0 0 1

0

R0

PARIDAD d0 d1 d2 d3

d0 d1 d2 d3

CCT012

CARRY

1 Co

DET. NEG.

1

CE OE VPP

Co CCT008

d0 d1 d2 d3

c

c s7

d3

11.- LIB B // Se introduce el siguiente dato y se lo identifica. 12.-SUB// Se resta el dato introducido y el guardado en “a”. 13.- ck=1, ck=0 [5]// Se guarda el resultado obtenido en “a”. a0 a1 a2 a3

R3

c s7

0

27C256

a0 a1 a2 a3

R1

b0 b1 b2 b3

CARRY

0 0 0 0

R0

R2

s0 s1 s2 s3 s4 s5 s6

REG D d0 d1 d2 d3

a0 a1 a2 a3

1 0 1 0

0

d3 N

U49

CCT012

0 0 0 1

15.- Nota: se toma como referencia si el detector de ceros esta en 1. 16.- SUB //Se resta el valor guardado en “a”. 17.- ck=1, ck=0 [0]// Se guarda el resultado obtenido en “a”. 18.- LIB A // Se lee el valor guardado en “a” para identificar la paridad. 19.- Nota: se muestra el valor obtenido en el conteo de las iteraciones antes de salir del ciclo (Z=1).

D0 D1 D2 D3 D4 D5 D6 D7

11 12 13 15 16 17 18 19

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

REG D d0 d1 d2 d3

0

D0 D1 D2 D3

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

0

CE OE VPP 27C256

0 0

2° EJERCICIO

2.- ck=1; ck=0 // Se procede a guardar en “a”.

[8+2-10+4]

3.- LIB B [2] // Se procede a introducir el segundo número y leerlo para verificar su entrada. ALU a0 a1 a2 a3

a0 a1 a2 a3

R1 R2

0 1 0 0

b0 b1 b2 b3

R3

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

s0 s1 s2 s3 s4 s5 s6

CARRY

0 0 1 1

R0

c s7

Co

Co

PARIDAD d0 d1 d2 d3

d0 d1 d2 d3

c

0

c s7 CCT008

0

d0 P d1 d2 d3

P

CCT013

DET. CEROS

c d0 d1 d2 d3

0

d0 Z d1 d2 d3

Z

CCT014

DET. NEG. d3

1

d3 N

N

U49

CCT012 10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

1 1 1 0

20 22 1

0

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

11 12 13 15 16 17 18 19

D0 D1 D2 D3 D4 D5 D6 D7

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

REG D d0 d1 d2 d3

D0 D1 D2 D3

1

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

1

CE OE VPP

0

27C256

1

4.- ADD// Se suma el dato introducido y el guardado en “a”. 5.- ck=1, ck=0 [10]// Se guarda el resultado obtenido en “a”. 6.- LIB B [10] // Se procede a introducir el tercer número y leerlo para verificar su entrada. 7.- SUB //Se resta el valor guardado en “a”. 1.- LIB B [8] // Se procede a introducir el primer número y leerlo para verificar su entrada. a0 a1 a2 a3

R1 R2

0 0 0 1

b0 b1 b2 b3

R3

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

s0 s1 s2 s3 s4 s5 s6

CARRY

0 0 0 1

R0

c s7

Co

0

d0 P d1 d2 d3

0

d0 Z d1 d2 d3

0

d3 N

20 22 1

11 12 13 15 16 17 18 19

0

0 0 0 1

Z

1

0

1

D0 D1 D2 D3

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

0

CE OE VPP 27C256

1 P

CCT013

d0 Z d1 d2 d3

1 Z

CCT014

0 1

d3 N

20 22 1

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

0 N

U49 10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

REG D d0 d1 d2 d3

d0 P d1 d2 d3

DET. NEG.

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

1 Co

DET. CEROS

c d0 d1 d2 d3

CCT012

N

U49 D0 D1 D2 D3 D4 D5 D6 D7

c

Co

PARIDAD d0 d1 d2 d3

d0 d1 d2 d3

d3

DET. NEG.

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

d0 d1 d2 d3

c s7 CCT008

P

CCT014

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

R3

DET. CEROS

c d0 d1 d2 d3

CCT012

R2

c s7

CCT013

d3

0 1 0 0

R1

s0 s1 s2 s3 s4 s5 s6

CARRY

0 0 0 0

R0

b0 b1 b2 b3

s0 s1 s2 s3 s4 s5 s6

Co

PARIDAD d0 d1 d2 d3

d0 d1 d2 d3

c

c s7 CCT008

a0 a1 a2 a3

0 1 0 1

ALU a0 a1 a2 a3

ALU a0 a1 a2 a3

D0 D1 D2 D3 D4 D5 D6 D7

11 12 13 15 16 17 18 19

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

REG D d0 d1 d2 d3

0

D0 D1 D2 D3

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

1

CE OE VPP 27C256

0 1

8.- ck=1, ck=0 [0]// Se guarda el resultado.

5°EJERCICIO

9.- LIB B [4] // Se procede a introducir el cuarto número y leerlo para verificar su entrada.

[3+(2*2)-1]/2

10.- ADD// Se suma el dato introducido y el guardado en “a”. 11.- Nota: se muestra el resultado obtenido. ALU a0 a1 a2 a3

a0 a1 a2 a3

R1 R2

0 0 1 0

b0 b1 b2 b3

R3

d0 d1 d2 d3 s0 s1 s2 s3 s4 s5 s6

s0 s1 s2 s3 s4 s5 s6

CARRY

0 0 1 0

R0

c s7

Co

0 Co

PARIDAD d0 d1 d2 d3

d0 d1 d2 d3

c

c s7 CCT008

d0 P d1 d2 d3

0 P

CCT013

DET. CEROS

c d0 d1 d2 d3

d0 Z d1 d2 d3

0 Z

CCT014

DET. NEG. d3

10 9 8 7 6 5 4 3 25 24 21 23 2 26 27

0

d3 N

20 22 1

A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14

0 N

U49

CCT012

1 1 1 0

D0 D1 D2 D3 D4 D5 D6 D7

11 12 13 15 16 17 18 19

CCT015

s0 s1 s2 s3 s4 s5 s6 s7

REG D d0 d1 d2 d3

0

D0 D1 D2 D3

Q0 Q1 Q2 Q3

a0 a1 a2 a3

CK

0

CCT009

0

CE OE VPP 27C256

0 0

1.- LIB [0010] // Insertamos la primera variable el 3 grabamos en a con un pulso de reloj

2.-ADD A+B [0111]//sumamos la variable guardada con “2” volvemos a grabar con otro pulso de reloj 3.- ADD A+B [0111] // realizamos el mismo paso para poder multiplicar 2*2 que podría expresarse 2+2 grabamos con otro pulso de reloj

4.-SUB

A-B

[1000]//restamos

el

6°EJERCICIO [(6/2)+5-7]*5

“1”

5.- activamos el display con 0 para poder dividir 6.-SUB A-B [1000]// realizamos este proceso hasta que nuestra salida será cero el resultado se muestra en el display

1.-LIB [0010]// grabamos en A para poder dividir restando

2.- SUB A-B [1000] // activamos el display para ayudarnos a dividir restamos hasta que nuestra variable A sea 0

7.- ADD A+B [0111]// sumamos el valor guardado en A + 1 realizamos 4 veces el procedimiento para poder realizar 1*5

7°EJERCICIO [10-7+(2*3)]/3

4.- LIB [0010]// grabamos el dato que estaba en display

5.-ADD A+B [0111]// sumamos el 3 + 5

6.- SUB A-B[1000]//restamos el valor guardado en a 8 – 7

1.- LIB [0010]//grabamos el primer dato “10” 8°EJERCICIO (7+5-9+6+3)/3

2.- SUB A-B[1000]//restamos el valor guardado

10 – 7 3.- ADD A+B[0111]//sumamos 2 veces 3 para poder realizar la multiplicación 2*3

1.-LIB [0010]// grabamos el primer dato 7 4.-SUB A-B[1000]// activamos el display para esta división restamos hasta que la variable A sea 0 y lo que nos muestra el display es el resultado

2.- ADD A+B [0111]//sumamos el dato grabado

7+5 3.- SUB A-B [1000]// almacenado 12-9

restamos

el

dato

5°EJERCICIO [(5*2)+2]/2

4.-ADD A+B [0111]//hacemos este paso 2 veces para poder sumar el 3+6+3

5.- SUB A-B[1000]//activamos el display y restamos hasta que los valores del resultado sean cero

1.- LIB [0010]// grabamos el primer dato 5

2.- ADD A+B[0111]//sumamos 5+5 para poder realizar 2*5

3,-ADD

A+B

[0111]//sumamos

10+2

4.-SUB A-B [1000] activamos el display y luego restamos hasta que sea cero y el resultado es el que muestra el dispay

-

-

de ahí la importancia de saber programar para un ingeniero. Lenguajes de programación como VHDL, C o cualquier otro nos ofrecen posibilidades infinitas de aplicación, basta con un poco de imaginación para implementar programas que nos permitan realizar operaciones complicadas o cualquier otra tarea. El consumo de recursos en un programa es muy importante debido a que, si este es muy grande y la capacidad de la memoria es reducida, tendremos problemas al querer quemar el programa. Por consiguiente, nuestro objetivo como futuros ingenieros es lograr la mayor eficiencia, consumiendo la menor cantidad de recursos. Y es así como queda demostrado la implementación de la ALU XI. RECOMENDACIONES

Después de corregir fallos, procedimos a la simulación, confirmando de esta forma el buen funcionamiento de todas las operaciones de la ALU, así como el buen funcionamiento de todo el circuito XII. REFERENCIAS [1]http://www.forosdeelectronica.com/tutoriales/f lip-flops.htm [2]The Student's Guide to VHDL (Systems on Silicon) by Peter J Ashenden . X. CONCLUSIONES De acuerdo a los resultados obtenidos en la simulación pudimos llegar a las siguientes conclusiones: -

La elaboración de la ALU nos permite realizar operaciones aritméticas y lógicas simples de una forma rápida y confiable,

More Documents from "Samuel Aruquipa"

Cuestionario.docx
June 2020 4
Pre Informe 2.docx
June 2020 4
Inves.docx
June 2020 2
Informe.docx
June 2020 2
Objetivo General.docx
April 2020 3