30.01.2015 Views

Circuitos lógicos combinacionales

Circuitos lógicos combinacionales

Circuitos lógicos combinacionales

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Circuitos</strong> lógicos <strong>combinacionales</strong><br />

Tema 6


¿Qué sabrás al final del capítulo<br />

■ Implementar funciones con dos niveles de puertas<br />

lógicas<br />

– AND/OR<br />

– OR/AND<br />

– NAND<br />

– NOR<br />

■ Analizar sistemas <strong>combinacionales</strong>, obteniendo la<br />

función lógica de salida<br />

■ Implementar sistemas <strong>combinacionales</strong> a partir de<br />

su especificación en forma de enunciado con<br />

distintos tipos de puertas


Resumen puertas lógicas


Implementación de funciones booleanas<br />

■ Todas las expresiones booleanas pueden<br />

expresarse en forma de:<br />

– suma de productos<br />

– producto de sumas<br />

■ En ambos casos la implementación puede<br />

realizarse con puertas lógicas AND y OR en<br />

dos niveles.


Implementación de funciones booleanas<br />

■ Funciones expresadas como suma de productos (AND/OR)<br />

F(a,b,c) = ab'c + a'c' + a'b<br />

Nivel 1 Nivel 2


Implementación con puertas AND / OR<br />

■ Ejemplo:<br />

f(x,y,z) =∑(1,3,6,7)<br />

X Y Z<br />

F<br />

0 0 0 0<br />

0 0 1 1<br />

0 1 0 0<br />

0 1 1 1<br />

1 0 0 0<br />

1 0 1 0<br />

1 1 0 1<br />

1 1 1 1<br />

■Esta<br />

notación<br />

significa la<br />

suma de los<br />

minitérminos<br />

1, 3 6 y 7<br />

x<br />

yz<br />

00 01 11 10<br />

0<br />

1<br />

0<br />

0<br />

1<br />

0<br />

1<br />

1<br />

0<br />

1<br />

f(x,y,z) = x'z + xy


Implementación de Funciones Booleanas<br />

■ Funciones expresadas como producto de sumas (OR/AND)<br />

g(a,b,c) = (a'+b+c) * (a'+b') * (b'+c)<br />

Nivel 1 Nivel 2


Implementación con puertas OR / AND<br />

■ Ejemplo<br />

f(x,y,z) =∑(1,3,6,7)<br />

x y z<br />

F<br />

0 0 0 0<br />

0 0 1 1<br />

0 1 0 0<br />

0 1 1 1<br />

1 0 0 0<br />

1 0 1 0<br />

1 1 0 1<br />

1 1 1 1


■ Implementación 00 01 11 10<br />

x<br />

yz<br />

x y z<br />

F F<br />

0 0 0 0 1<br />

0 0 1 1 0<br />

0 1 0 0 1<br />

0 1 1 1 0<br />

1 0 0 0 1<br />

1 0 1 0 1<br />

1 1 0 1 0<br />

1 1 1 1 0<br />

F<br />

F<br />

0<br />

1<br />

yz<br />

x<br />

0<br />

1<br />

F = x· z + x·<br />

y<br />

0 1<br />

0 0<br />

1 0<br />

1 1<br />

00 01 11 10<br />

1 0 0 1<br />

1 1 0 0


■ Negación de la negada<br />

F = x· z + x·<br />

y<br />

x<br />

0<br />

yz<br />

00 01 11 10<br />

0 1 1 0<br />

F = F = x· z + x·<br />

y<br />

1<br />

0<br />

0<br />

1<br />

1<br />

F = x·<br />

z·<br />

x·<br />

y<br />

F = ( x + z)·(<br />

x + y)


■ También se habría llegado a<br />

esa expresión agrupando<br />

directamente los ceros con los<br />

mismos criterios que los unos<br />

■ Escribiendo una suma con<br />

paréntesis por cada agrupación<br />

de ceros<br />

■ Las variables que siempre<br />

valen 1 aparecen NEGADAS,<br />

las que varían desaparecen, y<br />

las que siempre valen 0<br />

aparecen AFIRMADAS<br />

■ Finalmente se hace el producto<br />

de todas las sumas<br />

x<br />

F = ( x + z)·(<br />

x + y)<br />

0<br />

1<br />

yz<br />

00 01 11 10<br />

0<br />

0<br />

1<br />

0<br />

1<br />

1<br />

0<br />

1


Implementación con puertas<br />

sólo NAND.<br />

Implementación con puertas<br />

sólo NOR


Implementación con puertas NAND y NOR<br />

■ Las puertas NAND y NOR son universales<br />

– INVERSORES con NANDs y NORs


Implementación con puertas NAND y NOR<br />

■ Las puertas NAND y NOR son universales<br />

– AND con NANDs


Implementación con puertas NAND y NOR<br />

■ Las puertas NAND y NOR son universales<br />

– OR con NANDs


Implementación con puertas NAND y NOR<br />

■ Las puertas NAND y NOR son universales<br />

– AND con NORs


Implementación con puertas NAND y NOR<br />

■ Las puertas NAND y NOR son universales<br />

– OR con NORs


Implementación con puertas NAND<br />

■ A partir de suma de productos, y aplicando De Morgan


Implementación con puertas NOR<br />

■ A partir de producto de sumas, y aplicando De Morgan


Análisis e implementación de<br />

sistemas <strong>combinacionales</strong>


¿Qué es un Circuito Combinacional<br />

■ Dos tipos de circuitos digitales<br />

– Combinacionales: la salida depende sólo de la entrada<br />

– Secuenciales: la salida depende de la entrada y el<br />

estado anterior del circuito (entrada + memoria)


¿Qué es un Circuito Combinacional<br />

■ Las salidas tienen que estar completamente<br />

determinadas a partir de las entradas en cualquier<br />

instante<br />

■ No puede haber bucles de realimentación<br />

NO es combinacional<br />

SÍ es combinacional


Análisis de circuitos <strong>combinacionales</strong><br />

■ Consiste en determinar la expresión algebraica de<br />

la función implementada por el circuito<br />

Se evalúan las expresiones generadas por cada puerta desde<br />

su entradas hasta su salida


Síntesis o Diseño de <strong>Circuitos</strong> Combinacionales<br />

Especificación<br />

Síntesis<br />

F(A, B, C ) = ...<br />

A B C F<br />

0 0 0 1<br />

0 0 1 0<br />

0 1 0 1<br />

0 1 1 0<br />

1 0 0 1<br />

1 0 1 0<br />

1 1 0 0<br />

1 1 1 1<br />

Simplificación<br />

e implementación


Síntesis o Diseño de <strong>Circuitos</strong> Combinacionales<br />

■ Ejemplo<br />

Una máquina expendedora automática<br />

proporciona productos con diversos<br />

precios: botella de agua 0,50 €, lata de<br />

refresco 1,00 €, paquete de galletas<br />

1,50 € y caja de bombones 2,00 €.<br />

Sólo admite una moneda de 0,50 €,<br />

1,00 € ó 2,00 € para adquirir el<br />

producto y sólo devuelve cambio de 1<br />

moneda, caso de que tuviera que<br />

devolver cambio. Habrá casos en los<br />

que, al no poder proporcionar el<br />

cambio correcto, devolverá la moneda<br />

introducida, sin proporcionar el<br />

producto.<br />

ENTRADAS<br />

Moneda Producto<br />

0,00 € Agua<br />

0,00 € Lata<br />

0,00 € Galletas<br />

0,00 € Bombones<br />

0,50 € Agua<br />

0,50 € Lata<br />

0,50 € Galletas<br />

0,50 € Bombones<br />

1,00 € Agua<br />

1,00 € Lata<br />

1,00 € Galletas<br />

1,00 € Bombones<br />

2,00 € Agua<br />

2,00 € Lata<br />

2,00 € Galletas<br />

2,00 € Bombones<br />

SALIDAS<br />

¿Suministra Cambio<br />

No 0,00 €<br />

No 0,00 €<br />

No 0,00 €<br />

No 0,00 €<br />

Sí<br />

0,00 €<br />

No 0,50 €<br />

No 0,50 €<br />

No 0,50 €<br />

Sí<br />

0,50 €<br />

Sí<br />

0,00 €<br />

No 1,00 €<br />

No 1,00 €<br />

No 2,00 €<br />

Sí<br />

1,00 €<br />

Sí<br />

0,50 €<br />

Sí<br />

0,00 €


Síntesis o Diseño de <strong>Circuitos</strong> Combinacionales<br />

Entradas<br />

Salidas<br />

Codificación<br />

Monedas entradas (me 1<br />

, me 2<br />

)<br />

00: moneda de 0 € (ninguna moneda)<br />

01: moneda de 0,50 €<br />

10: moneda de 1,00 €<br />

11: moneda de 2,00 €<br />

Codificación del producto (t 1<br />

, t 2<br />

)<br />

00: botella de agua<br />

01: lata de refresco<br />

10: paquete de galletas<br />

11: caja de bombones<br />

Monedas retornadas (ms 1<br />

, ms 2<br />

)<br />

00: moneda de 0 € (ninguna moneda)<br />

01: moneda de 0,50 €<br />

10: moneda de 1,00 €<br />

11: moneda de 2,00 €<br />

Suministro (S)<br />

0: NO proporciona producto<br />

1: SÍ proporciona producto<br />

Tabla de verdad<br />

Entradas<br />

Salidas<br />

me 1<br />

me 2<br />

t 1<br />

t 2 S ms 1<br />

ms 2<br />

0 0 0 0 0 0 0<br />

0 0 0 1 0 0 0<br />

0 0 1 0 0 0 0<br />

0 0 1 1 0 0 0<br />

0 1 0 0 1 0 0<br />

0 1 0 1 0 0 1<br />

0 1 1 0 0 0 1<br />

0 1 1 1 0 0 1<br />

1 0 0 0 1 0 1<br />

1 0 0 1 1 0 0<br />

1 0 1 0 0 1 0<br />

1 0 1 1 0 1 0<br />

1 1 0 0 0 1 1<br />

1 1 0 1 1 1 0<br />

1 1 1 0 1 0 1<br />

1 1 1 1 1 0 0


Síntesis o Diseño de <strong>Circuitos</strong> Combinacionales<br />

Simplificación e implementación de algunas funciones<br />

t 2<br />

t 1<br />

me 1<br />

me 2<br />

00 01 11 10<br />

00<br />

01<br />

0<br />

1<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

11<br />

10<br />

0<br />

1<br />

1<br />

1<br />

1<br />

0<br />

1<br />

0<br />

S =<br />

me<br />

1<br />

me<br />

1<br />

· me<br />

2<br />

· me<br />

· t<br />

1<br />

2<br />

· t<br />

+ +<br />

1<br />

· t<br />

2<br />

me<br />

+<br />

1<br />

me<br />

· me<br />

2<br />

1<br />

· me<br />

· t<br />

1<br />

2<br />

· t<br />

2<br />

+<br />

t 1<br />

t 2<br />

me 1<br />

me 2<br />

00 01 11 10<br />

00 0 0 0 0<br />

01 0 0 0 0<br />

11 1 1 0 0<br />

ms<br />

1<br />

= me1· me2·<br />

t1<br />

+ me1·<br />

me2·<br />

t1<br />

10 0 0 1 1


Condiciones “no importa”<br />

■ En ocasiones ciertas combinaciones de entradas no<br />

tienen sentido en el sistema que estamos<br />

implementado<br />

■ En la tabla de verdad se marcan como casos “no<br />

importa” (X)<br />

■ A la hora de simplificar, a estos casos “no<br />

importa” se les darán los valores que nos<br />

convengan para conseguir las simplificaciones<br />

más sencillas


Condiciones “no importa”<br />

■ Ejemplo: conversor BCD natural a BCD exceso 3


Conclusiones<br />

■ Es posible implementar una función lógica con<br />

cualquiera de estos conjuntos de puertas<br />

■ AND / OR / NOT<br />

■ NAND<br />

■ NOR<br />

■ Analizar un circuito combinacional consiste en<br />

obtener la función de salida a partir de las entradas<br />

y las puertas a las que se encuentran conectadas<br />

■ Implementar un circuito combinacional<br />

■ especificación en forma de enunciado<br />

■ síntesis del enunciado en una tabla de verdad<br />

■ simplificación e implementación con un tipo de puertas (p.e.<br />

NAND)


Final del Tema 6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!