miércoles, 14 de enero de 2015

CAPÍTULO 1: NIVEL DE LÓGICA DIGITAL

ÁLGEBRA DE BOOLE

El álgebra booleana es la teoría matemática que se aplica en la lógica combinatoria. Las variables booleanas son símbolos utilizados para representar magnitudes lógicas y pueden tener sólo dos valores posibles: 1 (valor alto) ó 0 (valor bajo).

Operaciones Booleanas y Compuertas Básicas

Las operaciones boolenas son posibles a través de los operadores binarios negación, suma y multiplicación, es decir que estos combinan dos o más variables para conformar funciones lógicas. Una compuerta es un circuito útil para realizar las operaciones anteriormente mencionadas.

Inversión o negación (complemento)

El apóstrofe (’) es un operador algebraico que invierte el valor de una variable, es decir, si X denota la señal de entrada de un inversor, entonces X’ representa el complemento de tal señal.

Ecuación
Entrada A
Salida B
B=A’
0
1
1
0

El símbolo lógico de la negación booleana se representa a continuación


Suma booleana

La suma booleana es 1 si alguna de las variables lógicas de la suma es 1 y es 0 cuando todas las variables son 0. Esta operación se asimila a la conexión paralela de contactos.

Entrada A
Entrada B
Salida X
0
0
0
0
1
1
1
0
1
1
1
1

En circuitos digitales, el equivalente de la suma booleana es la operación OR y su símbolo lógico se representa:


Multiplicación booleana

La multiplicación booleana es si todas las variables lógicas son 1, pero si alguna es 0, el resultado es 0. La multiplicación booleana se asimila a la conexión serie de contactos.
La tabla de verdad de la multiplicación booleana se muestra a continuación:

Entrada A
Entrada B
Salida X
0
0
0
0
1
0
1
0
0
1
1
1

En circuitos digitales, el equivalente de la multiplicación booleana es la operación AND y su símbolo se representa:


El inverso de la función AND es la función NAND. La tabla de verdad se muestra a continuación.

Entrada A
Entrada B
Salida X
0
0
1
0
1
1
1
0
1
1
1
0

El símbolo lógico de la compuerta NAND se representa a continuación.



FLIP-FLOP

Se trata de un multivibrador capaz de permanecer en un estado determinado o en el contrario durante un tiempo indefinido. Esta característica es ampliamente utilizada en electrónica digital para memorizar información.

Un biestable, también llamado báscula (flip-flop en inglés), es un multivibrador capaz de permanecer en un estado determinado o en el contrario durante un tiempo indefinido. Esta característica es ampliamente utilizada en electronica digital para memorizar información. El paso de un estado a otro se realiza variando sus entradas. Dependiendo del tipo de dichas entradas los biestables se dividen en asíncronos y síncronos.

La principal diferencia es que el asíncrono solo tiene entradas de control, sin embargo el síncrono dispone además de una entrada para sincronismo o reloj. Si las entradas de control dependen de la de sincronismo se denominan síncronas y en caso contrario asíncronas. Por lo general, las entradas de control asíncronas prevalecen sobre las síncronas.  La entrada de sincronismo puede ser activada por nivel (alto o bajo) o por flanco (de subida o de bajada). Dentro de los biestables síncronos activados por nivel están los tipos RS yD, y dentro de los activos por flancos los tipos JK,T y D.

FAMILIAS TTL Y CMOS

La compuerta TTL fue una mejora introducida a la compuerta DTL. Los parámetros más importantes de las compuertas TTL son el retardo de propagación (ns), la disipación de potencia (mW), y el producto velocidad -potencia (pJ). El producto velocidad-potencia indica un retardo en la propagación con una disipación de potencia determinada.

Familia TTL (Lógica de Transistor - Transistor)

Esta fue la primera familia de éxito comercial, se utilizó entre 1965 y 1985. Los circuitos TTL utilizan transistores bipolares y algunas resistencias de polarización. La tensión nominal de alimentación de los circuitos TTL son 5 V DC.

Niveles Lógicos TTL

En el estudio de los circuitos lógicos, existen cuatro especificaciones lógicos diferentes: VIL, VIH, VOL y VOH.

En los circuitos TTL, VIL es la tensión de entrada válida para el rango 0 a 0.8 V que representa un nivel lógico 0 (BAJO). El rango de tensión VIH representa la tensiones válidas de un 1 lógico entre 2 y 5 V. El rango de valores 0.8 a 2 V determina un funcionamiento no predecible, por lo tanto estos valores no son permitidos. El rango de tensiones de salida VOL, VOH se muestra a continuación:

Circuitos Lógicos CMOS (Metal Óxido Semiconductor Complementario)

La tecnología CMOS es la más utilizada actualmente para la construcción de circuitos integrados digitales, como las compuertas, hasta los circuitos como las memorias y los microprocesadores. La tensión nominal de alimentación de los circuitos CMOS son +5 V y +3,3 V.

Niveles Lógicos CMOS

Se muestran las tensiones VIL, VIH, VOL, VOH válidas para los dispositivos CMOS de nivel +5 VDC.


CAPÍTULO 2: COMPONENTES DIGITALES

Circuitos Digitales
Decodificadores

Un decodificador o descodificador es un circuito combinacional, cuya función es inversa a la del codificador, esto es, convierte un código binario de entrada (natural, BCD, etc.) de N bits de entrada y M líneas de salida (N puede ser cualquier entero y M es un entero menor o igual a 2N), tales que cada línea de salida será activada para una sola de las combinaciones posibles de entrada. Estos circuitos, normalmente, se suelen encontrar como decodificador / demultiplexor. Esto es debido a que un demultiplexor puede comportarse como un decodificador.

Codificadores

Un codificador es un circuito combinacional con 2N entradas y N salidas, cuya misión es presentar en la salida el código binario correspondiente a la entrada activada.
Existen dos tipos fundamentales de codificadores: codificadores sin prioridad y codificadores con prioridad. En el caso de codificadores sin prioridad, puede darse el caso de salidas cuya entrada no pueda ser conocida: por ejemplo, la salida 0 podría indicar que no hay ninguna entrada activada o que se ha activado la entrada número 0. Además, ciertas entradas pueden hacer que en la salida se presente la suma lógica de dichas entradas, ocasionando mayor confusión. Por ello, este tipo de codificadores es usado únicamente cuando el rango de datos de entrada está correctamente acotado y su funcionamiento garantizado.

Multiplexores
Los multiplexores son circuitos combinacionales 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 demultiplexarse en el otro extremo.
Según la forma en que se realice esta división del medio de transmisión, existen varias clases de multiplexación:
  • Multiplexación por división de frecuencia
  •  Multiplexación por división de tiempo
  •  Multiplexación por división de código
  •  Multiplexación por división de longitud de onda


Registros
En arquitectura de ordenadores, un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas.

Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida que tiene el sistema de almacenar datos. Los registros se miden generalmente por el número de bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits". Los registros generalmente se implementan en un banco de registros, pero antiguamente se usaban biestables individuales, memoria SRAM o formas aun más primitivas.

El término es usado generalmente para referirse al grupo de registros que pueden ser directamente indexados como operandos de una instrucción, como está definido en el conjunto de instrucciones. Sin embargo, los microprocesadores tienen además muchos otros registros que son usados con un propósito específico, como el contador de programa. Por ejemplo, en la arquitectura IA32, el conjunto de instrucciones define 8 registros de 32 bits.

PLD

Un PLD (Programmable Logic Device, Dispositivo lógico programable) es un componente electrónico empleado para la fabricación de circuitos digitales. A diferencia de las puertas lógicas un PLD tiene una función indefinida. Antes de que un PLD pueda ser usado en un circuito este puede ser programado.

Un PLD está formado por una matriz de compuertas AND y puertas OR, que se pueden programar para conseguir funciones lógicas especificas. Existen cuatro tipos de dispositivos que se clasifican como PLD.
  • PROM (Programmable Read Only Memory). Memoria programable de sólo lectura.
  • PLA (Programmable Logic Array). Matriz lógica programable.
  • PAL (Programmable Array Logic). Matriz lógica programable.
  • GAL (Generic Array Logic). Matriz lógica generica.


Todos los PLD están formados por matrices programables. Esencialmente, una matriz programable es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de intesección. Las matrices pueden ser fijas o programables.

CAPÍTULO 3: REPRESENTACIÓN DE DATOS

Micro-operaciones
Decimal a Binario 
<<Ejemplo; 

45 = BIN 

45/2 Cosiente 22 Residuo 1 

22/2 Cosiente 11 Residuo 0 
11/2 Cosiente 5 Residuo 1 
5/2 Cosiente 2 Residuo 1 
2/2 Cosiente 1 Residuo 0 
1/2 Cosiente 0 Residuo 1 MSB 
101101 (Esto equibale en BIN) 
El resultado va de abajo hacia arriba


Binario a Decimal
Ejemplo: 

101011

= 1* 2^5 + 0* 2^4 + 1* 2^3 + 0* 2^2 + 1* 2^1 + 1*2^0 

= 32 + 8 + 2 +1 

= 43 (Y listo equibale a un 43 en DEC)

Octal a Decimal (es igual que el BIN solo que se multiplica por 8) 

Ejemplo: 

431 

= 4 * 8^2 + 3 * 8^1 + 1 * 8^0 

= 4 * 64 + 3 * 8 + 1 * 1 
= 256 + 24 + 1 
= 281 (Y listo equivale a un 281 en DEC)


Hexadecimal a Decimal (Este método solo se multiplica por 16) 
Ejemplo: 

= 11(B) * 16^3 + 10(A) * 16^2 + 11(B) * 16^1 + 10(A) 16^0 

= 11 * 4096 + 10 * 256 + 11 * 16 + 10 * 1 

= 45056 + 2560 + 176 + 10 

= 47802 (Y listo equivale a un 47802 en DEC)


Conversión del sistema Binario a Octal y Haxadecimal 
Ejemplo 

Binario a Octal

001 111 BIN = 1 7OCT 


Octal a Binario
56 OCT = 101 110 BIN

Decimal a Octal 
Ejemplo: 

201 DEC --> OCT 

201 / 8 Cosiente 25 Residuo 1 LSB 

25 / 8 Cosiente 3 Residuo 1 

3 / 8 Cosiente 0 Residuo 3 MSB 
Y el resultado es; 311 en octal

Decimal a Hexadecimal 
Ejemplo: 

59 DEC --> HEX 

59/16 Cosiente 3 Residuo 11 

3/16 Cosiente 0 Residuo 3 

Y como en Hexadecimal el 11 es B quedaria asi: 3B

El complemento a 1
El complemento a 1 de un número binario se obtiene cambiando todos los unos por ceros y todos ceros por unos.

El complemento a 2
Obtención del complemento a 2 de un número binario
El complemento a 2 de un numero binario se obtiene sumando 1 al LSB del complemento a 1.
Complemento a 2=complemento a 1+1 >>

(Mano)

Lenguaje de transferencia de registros

<<El diseño de sistemas digitales utiliza de manera invariable un enfoque modular. Los módulos se construyen a partir de componentes digitales como registros, decodificadores, elementos aritméticos y lógica de control. Los diferentes módulos están interconectados con los datos y las trayectorias de control comunes para formar un sistema de computadora digital.

Transferencia de registros
Los registros de computadora están representados por letras mayúsculas (en ocasiones seguidas de números), para denotar la función del registro. Por ejemplo:
MAR (Memory address register) : registro que contiene una dirección para la unidad de memoria
PC : contador de programa
IR : registro de instrucción
R1 : registro de procesador

Microoperaciones aritméticas

Las microoperaciones que se encuentran con mayor frecuencia en las computadoras digitales se clasifican en cuatro categorías:
Microoperaciones aritméticas
Microoperaciones lógicas
Microoperaciones de desplazamiento

Las microoperaciones aritméticas son suma, resta, incremento, decremento y corrimiento.
Representación simbólica
 Descripción
 R3 <- R1 + R2
 El contenido de R1 más R2 transferido a R3
 R3 <- R1 - R2
 El contenido de R1 menos R2 transferido a R3
 R2 <- R2
 Complementar el contenido de R2 (complemento a 1)
 R2 <- R2 +1
 Complementar a 2 el contenido de R2
 R3 <- R1 + R2 +1
 R1 más el complemento a 2 de R2 (resta)
 R1 <- R1 + 1
 Incrementar el contenido de R1 en uno 
 R1 <- R1 -1
 Decrementar el contenido de R1 en uno

Microoperaciones lógicas
Las microoperaciones lógicas especifican operaciones binarias para arreglos de bits almacenados en registros. Estas operaciones consideran cada bit de registro en forma separada y los tratan como variables binarias.

 Microoperación
Nombre 
 F <- A B
 AND
 F <- AB
 OR
 F <- A B
 OR exclusiva
 F <- A
 Complementar A

Microoperaciones de desplazamiento
Desplazamiento lógico: es aquel que transfiere un 0 por la entrada serial.
Desplazamiento circular: hace circular los bits del registro por los dos extremos sin pérdida de información. Esto se consigue al conectar la salida serial del registro de corrimiento a su entrada serial.
Desplazamiento aritmético: recorre un número binario con signo a la derecha o a la izquierda. Un corrimiento aritmético a la izquierda multiplica un número binario con signo por 2. Un corrimiento aritmético a la derecha divide el número entre 2. El bit del extremo izquierdo contine el bit de signo y los bits restantes contienen el número. El bit de signo es 0 para los números positivos y 1 para los negativos. Los números negativos están en su forma complemento a 2.>>

 Representación simbólica
 Descripción
 R <- shl R
 Corrimiento a la izquierda del registro R
 R <- shr R
 Corrimiento a la derecha del registro R
 R <- cil R
 Corrimiento circular a la izquierda del registro R
 R <- cir R
 Corrimiento circular a la derecha del registro R
 R <- ashl R
 Corrimiento aritmético a la izquierda de R
 R <- ashr R
 Corrimiento aritmético a la derecha de R

 (MarioYC, 2014)