P6nva, Circuitos Lógicos
P6nva, Circuitos Lógicos
P6nva, Circuitos Lógicos
Práctica 6
Diseño Combinacional
Objetivos particulares
Durante el desarrollo de esta práctica el estudiante diseñara un Sistema Combinacional
utlizando como guia un metodo propuesto y lo implemetara en un prototipo usando un
Disositivo Logico Programable (PLD)
Elementos de competencia
Diseñar un sistema electrónico digital aplicando métodos de diseño para sistemas
combinacionales, utilizando herramientas computacionales, analíticas e instrumentación,
construir un prototipo con dispositivo logico programable y verificar su correcto
funcionamiento.
Definiciones:
Diseño en Ingeniería: Es la creación y desarrollo de un producto, proceso o sistema
económicamente viable para satisfacer necesidades definidas por un cliente o proceso.
Andrew McLaren, Approaches to the Teaching of Design, Engineering Subject Centre, The Higher Education
Academy, University of Sheffiled UK, 2008, ISBN 978-1-904804-802.
Material a utilizar
Fuente de 5 V de corriente directa.
Tablilla de conexiones
Circuito Integrado GAL 16, 20 0 22 o equivalente. (Lattice, Atmel o Cypress).
10 resistores de 330 Ω.
1 Dip switch de 8 interruptores o 5 Switch Push Micro NO.
10 Leds (no importa el color, de preferencia usar los luminosos ultra, mega solo como indicadores
de los valores de las salidas F1 y F2),
Alambre para conexiones.
Programas de aplicación (software):
IspLEVER
Microsoft Word (reporte)
Recortes (Windows XP o 7)
Fundamento Teórico
Se controla también el Voltaje (V) que alimenta la instalación, de forma que la alarma
también se active cuando ésta sea inferior a un valor mínimo.
Potencia (P) ("1" por encima de dicho valor y "0" por debajo).
Factor de Potencia (F) ("1" por encima de dicho valor y "0" por debajo).
Intensidad eléctrica (I) ("1" por encima de dicho valor y "0" por debajo).
Voltaje (V) ("1" por encima de dicho valor y "0" por debajo).
Las entradas son 4: Potencia (P), Factor de Potencia (F), Intensidad eléctrica (I) y
Voltaje (V).
m V P F I A
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1
Iniciaremos con esta parte de la redacción
Se controla también el Voltaje (V) que alimenta la instalación, de forma que la alarma
también se active cuando ésta sea inferior a un valor mínimo.
m V P F I A
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 1
4 0 1 0 0 1
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1
Las primeras ocho combinaciones (de m0 a m7) cumplen con que el voltaje sea inferior a
un valor mínimo, por lo que la alarma debe de activarse.
Debe activarse una alarma cuando al menos dos de estos parámetros sobrepase un valor
límite.
m V P F I A
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 1
4 0 1 0 0 1
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1 1
12 1 1 0 0
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 1
Para lo cual cumplen las combinaciones 11, 13 14 y 15 de la tabla
Todas las demás combinaciones no consideradas (8, 9, 10 y 12) deberán de tomar el
valor de cero.
m V P F I A
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 1
4 0 1 0 0 1
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 1
12 1 1 0 0 0
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 1
m V P F I A
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 1
4 0 1 0 0 1
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 1
12 1 1 0 0 0
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 1
Por medio del código ABEL_HDL Module se puede describir el comportamiento del diseño
combinacional de tres formas diferentes:
1.- Las ecuaciones con el comando equations y considerando la sintaxis del lenguaje en
tal como se realizó la practica anterior (no necesariamente se requiere de la mínima
expresión ya que el programa IspLEVER realiza automáticamente la simplificación de las
funciones).
Al utilizar esta opción no necesitaríamos elaborar el diagrama esquemático que es uno de
los pasos del método propuesto.
3.- Descripción del problema, usando el mismo comando equations pero con los
agregados de descripción When, Then y Else.
Utilizando las ecuaciones mínimas obtenidas por medio del Kmap la transformaremos a la
Sintaxis del código ABEL podemos usar la ecuación en forma SOP.
En la gráfica de la simulación podemos observar que los valores de salida cumplen para
todas las combinaciones de la tabla de verdad propuesta, de manera que en esta parte
del diseño cumple con lo especificado, por lo que ya es recomendable pasar a
implementar físicamente el prototipo.
Ejemplo 2 (Truth_Table)
Código Propuesta
0 0 no hay propuesta
0 1 piedra
1 0 papel
1 1 tijera
Se requiere de un botón adicional llamado J (juego) de modo que solo al oprimirlo
muestre por medio de dos salidas SA y SB indique que jugador gano, en el caso de que
uno o los dos concursantes no tengan propuesta el resultado será nulo indicando la
salidas 00, en caso de empate deberá de mostrarse por medio de un 11 en la salida.
En el caso de que no se oprima J (J=0) las salidas SA y SB serán igual a cero.
1.- Especificar el sistema.
En la redacción se explica el propósito del diseño, además se identifican las variables:
J, A1, A0, B1, B0, Ga y Gb
2.- Determinar las entradas y salidas
Podemos determinar que las entradas son cinco: J, A1, A0, B1 y B0
Las salidas dos: Ga y Gb
m J A1 A0 B1 B0 SA SB
0 0 0 0 0 0
1 0 0 0 0 1
2 0 0 0 1 0
3 0 0 0 1 1
4 0 0 1 0 0
5 0 0 1 0 1
6 0 0 1 1 0
7 0 0 1 1 1
8 0 1 0 0 0
9 0 1 0 0 1
10 0 1 0 1 0
11 0 1 0 1 1
12 0 1 1 0 0
13 0 1 1 0 1
14 0 1 1 1 0
15 0 1 1 1 1
16 1 0 0 0 0
17 1 0 0 0 1
18 1 0 0 1 0
19 1 0 0 1 1
20 1 0 1 0 0
21 1 0 1 0 1
22 1 0 1 1 0
23 1 0 1 1 1
24 1 1 0 0 0
25 1 1 0 0 1
26 1 1 0 1 0
27 1 1 0 1 1
28 1 1 1 0 0
29 1 1 1 0 1
30 1 1 1 1 0
31 1 1 1 1 1
Para el caso de que uno o los dos concursantes no tengan propuesta el resultado será nulo
indicando la salidas 00, lo cual las combinaciones 16, 17, 18, 19 20, 24 y 28 cumplen como se
muestra en la siguiente tabla:
m J A1 A0 B1 B0 SA SB
0 a 15 0 X X X X 0 0
16 1 0 0 0 0 0 0
17 1 0 0 0 1 0 0
18 1 0 0 1 0 0 0
19 1 0 0 1 1 0 0
20 1 0 1 0 0 0 0
21 1 0 1 0 1
22 1 0 1 1 0
23 1 0 1 1 1
24 1 1 0 0 0 0 0
25 1 1 0 0 1
26 1 1 0 1 0
27 1 1 0 1 1
28 1 1 1 0 0 0 0
29 1 1 1 0 1
30 1 1 1 1 0
31 1 1 1 1 1
En caso de empate deberá de mostrarse por medio de un 11 en la salida
m J A1 A0 B1 B0 SA SB
0 a 15 0 X X X X 0 0
16 1 0 0 0 0 0 0
17 1 0 0 0 1 0 0
18 1 0 0 1 0 0 0
19 1 0 0 1 1 0 0
20 1 0 1 0 0 0 0
21 1 0 1 0 1 1 1
22 1 0 1 1 0
23 1 0 1 1 1
24 1 1 0 0 0 0 0
25 1 1 0 0 1
26 1 1 0 1 0 1 1
27 1 1 0 1 1
28 1 1 1 0 0 0 0
29 1 1 1 0 1
30 1 1 1 1 0
31 1 1 1 1 1 1 1
Para llenar las salidas restantes utilizaremos las reglas del juego:
Piedra (01) la gana a tijera (11), Tijera (11) la gana a papel (10), Papel (10) le gana a
piedra (01) como se muestra en la siguiente tabla:
m J A1 A0 B1 B0 SA SB
0 a 15 0 X X X X 0 0
16 1 0 0 0 0 0 0
17 1 0 0 0 1 0 0
18 1 0 0 1 0 0 0
19 1 0 0 1 1 0 0
20 1 0 1 0 0 0 0
21 1 0 1 0 1 1 1
22 1 0 1 1 0 0 1
23 1 0 1 1 1 1 0
24 1 1 0 0 0 0 0
25 1 1 0 0 1 1 0
26 1 1 0 1 0 1 1
27 1 1 0 1 1 0 1
28 1 1 1 0 0 0 0
29 1 1 1 0 1 0 1
30 1 1 1 1 0 1 0
31 1 1 1 1 1 1 1
Una vez que se tiene completa la tabla de verdad se puede pasar a elaborar el código en
ABEL_HDL sin necesidad de obtener las ecuaciones mínimas o Elaborar el diagrama
esquemático usando el comando Truth_Table .
Para el caso de las combinaciones de entrada que no importa el valor (Don´t care), en el
código ABEL-HDL se utiliza el :X: para indicarlo como se muestra a continuación:
MODULE piedra
"Entradas
J,A1,A0,B1,B0 pin 1..5;
"salidas
Ga,Gb pin 12,13 istype 'com';
"asignación de variable por comodidad X en lugar de .x.
X=.x.;
truth_table
([J,A1,A0,B1,B0]->[Ga,Gb])
[0,X,X,X,X]->[0,0];
[1,0,0,0,0]->[0,0];
[1,0,0,0,1]->[0,0];
[1,0,0,1,0]->[0,0];
[1,0,0,1,1]->[0,0];
[1,0,1,0,0]->[0,0];
[1,0,1,0,1]->[1,1];
[1,0,1,1,0]->[0,1];
[1,0,1,1,1]->[1,0];
[1,1,0,0,0]->[0,0];
[1,1,0,0,1]->[1,0];
[1,1,0,1,0]->[1,1];
[1,1,0,1,1]->[0,1];
[1,1,1,0,0]->[0,0];
[1,1,1,0,1]->[0,1];
[1,1,1,1,0]->[1,0];
[1,1,1,1,1]->[1,1];
Test_vectors
([J,A1,A0,B1,B0]->[Ga,Gb])
[0,X,X,X,X]->[0,0];
[1,0,0,0,0]->[0,0];
[1,0,0,0,1]->[0,0];
[1,0,0,1,0]->[0,0];
[1,0,0,1,1]->[0,0];
[1,0,1,0,0]->[0,0];
[1,0,1,0,1]->[1,1];
[1,0,1,1,0]->[0,1];
[1,0,1,1,1]->[1,0];
[1,1,0,0,0]->[0,0];
[1,1,0,0,1]->[1,0];
[1,1,0,1,0]->[1,1];
[1,1,0,1,1]->[0,1];
[1,1,1,0,0]->[0,0];
[1,1,1,0,1]->[0,1];
[1,1,1,1,0]->[1,0];
[1,1,1,1,1]->[1,1];
END
Ga = (B0 &B1 &A0 &J # !B0 &B1 &A1 &J # B0 &!B1 &!A0 & A1 &J # B0 & A0 &!A1 &J);
Gb = (B0&!B1 & A0 &J# B0&B1&A1&J # B1 & !A0&A1 &J # !B0 & B1&A0 &!A1&J);
Imagen de la simulación
Pie de foto
Los multiplexores son circuitos digitales 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.
2 a 1 línea 1
4 a 1 línea 2
8 a 1 línea 3
N
Por medio de las entradas de control (N) seleccionamos que el valor de entrada de una de las 2
líneas (Lx) sea el mismo valor de la salida (Y).
1 Portada.
4 Tabla de verdad
8 Imagen de la simulación.
10 Conclusiones
11 Recomendaciones
12 Referencias bibliográficas
La fecha límite de entrega del reporte y mostrar el circuito funcionando es un día antes de
la próxima sesión de laboratorio.
En la página http://jagarza.fime.uanl.mx/ podrás encontrar el video de esta práctica así como manuales de
uso del lenguaje ABEL.HDL, así como el software LogicAid
Problemas propuestos
1.- Se desea diseñar e implementar un sistema electrónico digital, que tenga dos
entradas (de dos bits cada una) en las cuales de codificarán los tipos de sangre que
poseen dos individuos (un donador D1, D0 y un receptor R1, R0). A la salida, el
circuito deberá entregar una señal T que indique en forma luminosa y sonora si es
posible realizar la transfusión de sangre.
Los tipos de sangre humana conocidos son: A, B, AB y O.
a) Cuando un individuo tiene sangre tipo O, puede donar a receptores que tengan
sangre de cualquier otro tipo, pero solamente puede recibir sangre de su mismo tipo.
b) Si el individuo tiene sangre tipo AB, puede recibir de cualquier otro tipo de sangre,
pero solamente puede donar a un individuo que posea el mismo tipo de sangre.
c) En el caso en el cual la persona posee sangre tipo A, solamente puede donar a
individuos que posean sangre tipo A o AB, y debe recibir solamente sangre de los
tipos A u O.
d) Por último, una persona con sangre tipo B, puede donar a personas que tengan el
tipo AB o B, pero solamente puede recibir del tipo B u O. Considere que las señales
luminosa y sonora se activarán con un nivel lógico ‘1’
Para distinguir los tipos de sangre se sugiere asignar los siguientes códigos:
Tipo Código
A 0 0
B 0 1
AB 1 0
O 1 1
9.- Diseñe un sistema electrónico digital capaz de mostrar al ganador entre dos
adversarios del tradicional concurso piedra, papel o tijera.
El sistema estará definido por las entradas de los jugadores A (A1, A0) y B (B1, B0) y
dos salidas Ga y Gb, Se recomienda usar el siguiente código.
00 no hay propuesta
01 piedra
10 papel
11 tijera
Se requiere de un botón adicional llamado J (juego) de modo que solo al oprimirlo
muestre por medio de dos salidas SA y SB indique que jugador gano, en el caso de
que uno o los dos concursantes no tengan propuesta el resultado será nulo indicando la
salidas 00, en caso de empate deberá de mostrarse por medio de un 11 en la salida.
En el caso de que no se oprima J las salidas SA y SB serán igual a cero
10.- En una cierta empresa de cuatro directivos sus acciones están distribuidas de la
siguiente forma:
A=45%, B=30%, C=15% y D=10%.
Diseñar e implementar un sistema electrónico digital de escrutinio por medio de
botones de votación uno para cada directivo, teniendo en cuenta que cada miembro
tiene un porcentaje de voto igual a su número de acciones y que para aprobar una
moción.
El resultado de la votación será mostrado por medio de dos leds de la siguiente
manera
L1,L0
0 0 no hay resultado
0 1 menor o igual a 30 pero mayor que 0
1 0 menor o igual a 60 pero mayor que 30
1 1 mayor de 60
El resultado solo se mostrará cuando se oprima un quinto botón llamado V (votar) en el
caso de que no se oprima el botón V las salidas L1, L0 permanecerán apagadas.
12.- En una cierta empresa de cuatro directivos sus acciones están distribuidas de la
siguiente forma:
A=40%, B=35%, C=15% y D=10%.
Diseñar e implementar un sistema electrónico digital de escrutinio por medio de botones
de votación uno para cada directivo, teniendo en cuenta que cada miembro tiene un
porcentaje de voto igual a su número de acciones y que para aprobar una moción.
El resultado de la votación será mostrado por medio de dos leds de la siguiente manera
L1,L0
0 0 0 o menor o igual a 10
0 1 Menor o igual a 35 pero mayor que 10
1 0 Menor o igual a 60 pero mayor que 35
1 1 Mayor de 60
El resultado solo se mostrará cuando se oprima un quinto botón llamado V (votar) en el
caso de que no se oprima el botón V las salidas L1, L0 permanecerán apagadas.
13.- Concurso
Diseñar un sistema electrónico digital para mostrar la calificación de una competencia, en
donde hay cinco personas que actúan como jueces, el voto de cada uno de ellos se indica
por medio de un botón que por medio de oprimirlo (1) cuando el participante pasa la
prueba, o no presionarlo (0) cuando fracasa. Los cinco botones J1, J2, J3 J4 y J5 son la
entrada de un sistema.
Las reglas de la competencia sólo permiten la diferencia de un voto y los resultados se
indican por medio de dos luces llamadas S1 y S0 de modo que:
a) Si el voto es 4-1 o 5-0 a favor, entonces la salida será igual a S1=1 y S0 =1 que indica
que es aceptado.
b) Si el voto es 4-1 o 5-0 en contra, la salida será igual a S1=0 y S0 = 0 que indica que es
rechazado.
c) Si el voto es 3-2 o 2-3 la salida será igual a S1=1 y S0 = 0 el participante tiene una
nueva oportunidad.
14.- Concurso
Diseñar un sistema electrónico digital para mostrar la calificación de una competencia, en
donde hay cinco personas que actúan como jueces, el voto de cada uno de ellos se indica
por medio de un botón que al oprimirlo (1) cuando el participante pasa la prueba, o no
presionarlo (0) cuando fracasa.
Los cinco botones J1, J2, J3 J4 y J5 son la entrada de un sistema.
Las reglas de la competencia sólo permiten la diferencia de un voto y los resultados se
indican por medio de dos luces llamadas S1 y S0 de modo que:
a) Si el voto es 4-1 o 5-0 a favor, entonces encenderán las dos luces ( S1=1 y S0 =1) que
indica que es aceptado.
b) Si el voto es 4-1 o 5-0 en contra, se mantendrán apagadas las dos luces (S1=0 y S0
=0) que indica que es rechazado.
c) Si el voto es 3-2 a favor encendera solo la salida S1, que indica que el participante
vuelva a repetir el intento.
d) Si el voto o 2-3 solo encenderá la salida S0 =0 e indica el participante estara en espera
de una nueva oportunidad.
17.- Se desea diseñar e implementar un sistema electrónico digital que avise encendiendo
un Led F cuando alguna de las personas de los asientos delanteros NO se ha puesto el
cinturón, siempre que haya alguien en el asiento con un peso mayor a 15 Kg y el coche
esté en marcha.
El sistema cuenta con 5 sensores:
Dos en el sistema de enganche de los cinturones, uno para el conductor (CC) y otro para
el acompañante (CA). Su salida es un 1 si NO tenemos el cinturón puesto y un 0 en caso
contrario.
Dos sensores más que nos avisan si hay alguien sentado en el Asiento del Conductor
(AC) o en el del Acompañante (AA). Un 1 indica la presencia de alguien en el asiento y un
0 la ausencia.
Además hay otra señal de control que nos indica cuando el coche está en marcha (S = 1)
y cuando está parado (S = 0).
21.- En una industria automotriz se requiere diseñar un sistema electrónico digital para la
seguridad de los operarios y el control de una prensa, que operará de la siguiente forma:
1.- Se pone en marcha mediante la actuación simultánea de 5 pulsadores (A, B, C, D, E).
2.- Si se pulsa solamente cuatro cualesquiera, la prensa funcionará, pero se activará una
lámpara indicando una manipulación incorrecta.
3.- Cuando se pulse dos o tres pulsadores, también se encenderá la lámpara, pero no se
activará la prensa.
23.- El ayuntamiento municipal de una localidad pequeña está formado por un alcalde (A)
con tres votos, un secretario (S) con otros dos votos y tres regidores (R1, R2, R3) con un
voto cada uno, el total de votos es ocho. La propuesta es aceptada con un mínimo de 4
votos a favor (1), pero el voto en contra (0) simultáneo de los tres regidores supone un
veto al acuerdo.
Diseñe un sistema electrónico digital que por medio de una salida F indique con un valor
de uno si el acuerdo es aceptado y un cero cuando es rechazado.
25.- Una empresa pequeña tiene 10 acciones cotizando en la bolsa de valores, las cuales
están distribuidas de la siguiente forma:
Accionista No de Acciones
Sr. Álvarez: 3
Sr Buendía 3
Sr. Campos: 2
Sr. Diaz 1
Sr. Elizondo 1
Cada una de estas personas oprime un interruptor que genera un estado lógico alto
cuando desea votar a favor de alguna decisión durante las reuniones del consejo de la
empresa. Diseñar e implemente un sistema electrónico digital que mediante 4 Leds
(Diodos emisores de luz) muestra el valor decimal representado en binario el número total
de acciones que votan a favor de una decisión.
Diseñe e implemente un sistema electrónico digital con cinco variables de entrada que
solo genera un 1 en la salida cuando solo tres variables de entrada son 0.