14
Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito 1 Laboratorio de Sistemas Digitales y MicroproceAdores PRÁCTICA No. 2 Álgebra de Boole Elaborador por: Jean Pierre Pazos Fecha de entrega del informe: 22 de septiembre 2015 Fecha de elaboración de la práctica: 15 de septiembre de 2015 Contenido 1 Objetivo ........................................................................................................... 1 2 Informe ............................................................................................................ 1 2.1 Introducción .............................................................................................. 1 2.2 Prelaboratorio ............................................................................................ 2 2.3 Laboratorio ................................................................................................ 7 3 Conclusiones .................................................................................................. 10 4 Recomendaciones ........................................................................................... 11 5 Referencias y Bibliografía................................................................................ 11 6 Anexos .......................................................................................................... 11 1 Objetivos Aprender a simplificar expresiones Booleanas utilizando el álgebra de Boole. Aprender a crear e instanciar módulos esquemáticos en ISE. Aprender a simular funciones Booleanas en Xilinx ISE. 2 Informe 2.1 Introducción El álgebra de Boole es una estructura matemática similar a un anillo de Boole, pero que se define mediante operadores de unión, en lugar de los operadores usuales como los de adición y multiplicación. Explícitamente, el álgebra de Boole es el orden fragmentario sobre los subconjuntos definidos por la inclusión, es decir, el álgebra de Boole de un conjunto A es el conjunto de subconjuntos de A que se pueden obtener por medio de un número finito, el cual es el resultado de la unión de operaciones de conjuntos (OR), la intersección (AND), y la complementación (NO). El álgebra de Boole también forma una celosía y cada uno de los elementos de A se llama una función de Boole. En 1938, Shannon demostró que un álgebra de Boole de dos valores (cuyos miembros son más comúnmente denotados 0 y 1, o falso y verdadero) puede describir el

Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Embed Size (px)

DESCRIPTION

TRABAJOS

Citation preview

Page 1: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

1

Laboratorio de Sistemas Digitales y MicroproceAdores

PRÁCTICA No. 2 Álgebra de Boole

Elaborador por: Jean Pierre Pazos Fecha de entrega del informe: 22 de septiembre 2015 Fecha de elaboración de la práctica: 15 de septiembre de 2015

Contenido

1 Objetivo ........................................................................................................... 1 2 Informe ............................................................................................................ 1

2.1 Introducción .............................................................................................. 1 2.2 Prelaboratorio ............................................................................................ 2 2.3 Laboratorio ................................................................................................ 7

3 Conclusiones .................................................................................................. 10 4 Recomendaciones ........................................................................................... 11 5 Referencias y Bibliografía................................................................................ 11 6 Anexos .......................................................................................................... 11

1 Objetivos

Aprender a simplificar expresiones Booleanas utilizando el álgebra de Boole. Aprender a crear e instanciar módulos esquemáticos en ISE. Aprender a simular funciones Booleanas en Xilinx ISE.

2 Informe

2.1 Introducción

El álgebra de Boole es una estructura matemática similar a un anillo de Boole, pero que se define mediante operadores de unión, en lugar de los operadores usuales como los de adición y multiplicación. Explícitamente, el álgebra de Boole es el orden fragmentario sobre los subconjuntos definidos por la inclusión, es decir, el álgebra de Boole de un conjunto A es el conjunto de subconjuntos de A que se pueden obtener por medio de un número finito, el cual es el resultado de la unión de operaciones de conjuntos (OR), la intersección (AND), y la complementación (NO). El álgebra de Boole también forma una celosía y cada uno de los elementos de A se llama una función de Boole. En 1938, Shannon demostró que un álgebra de Boole de dos valores (cuyos miembros son más comúnmente denotados 0 y 1, o falso y verdadero) puede describir el

Page 2: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

2

funcionamiento de los circuitos de conmutación eléctricos bivalentes. En los tiempos modernos, el álgebra de Boole y funciones booleanas son, por tanto, indispensables en el diseño de chips y circuitos integrados. Un display de 7 segmentos es el dispositivo electrónico de visualización más básico que puede mostrar dígitos 0-9. Estos tienen un amplio uso en los dispositivos que muestran información numérica como relojes digitales, radios, hornos de microondas, contadores electrónicos, etc. La configuración más común tiene una serie de ocho LEDs dispuestos en un patrón especial para mostrar estos dígitos Siete LEDs 'a' a la 'g' se utilizan para mostrar los números mientras un octavo LED 'd.p' se utiliza para mostrar el punto decimal. Un display de siete segmentos por lo general posee 10 pines. De estos, 8 corresponden a los ocho LEDs, los dos pasadores restantes (en medio) son comunes y en corto internamente. Estos segmentos se presentan en dos configuraciones: el cátodo común (CC) y el ánodo común (CA). En la configuración de CC, los terminales negativos de todos los LEDs están conectados a las clavijas comunes. El común está conectado a tierra y un LED particular, se ilumina cuando su correspondiente pin es dado de alta. En el arreglo CA, el pasador común se da un alto lógico y los pasadores de LED se dan de baja para mostrar un número.

2.2 Prelaboratorio

Se muestra los pasos para la simplificación y el circuito de la expresión simplificada.

( )

( )

( ) ( ) ( ) ( )

( ) ( )

Page 3: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

3

( )

( ) ( )

( )

( )

La tabla de verdad para el display se muestra a continuación:

Dígito Sa Sb Sc Sd a b c d e f g

0 0 0 0 0 0 0 0 0 0 0 1

1 0 0 0 1 1 0 0 1 1 1 1

2 0 0 1 0 0 0 1 0 0 1 0

3 0 0 1 1 0 0 0 0 1 1 0

4 0 1 0 0 1 0 0 1 1 0 0

5 0 1 0 1 0 1 0 0 1 0 0

6 0 1 1 0 0 1 0 0 0 0 0

Page 4: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

4

CD

CD

7 0 1 1 1 0 0 0 1 1 1 1

8 1 0 0 0 0 0 0 0 0 0 0

9 1 0 0 1 0 0 0 0 1 0 0

Para todo el resto de combinaciones, las salidas no importan. Tomando en cuenta los “no importas”, se tienen las siguientes tablas de Karnaugh para los 7 segmentos:

AB

00 01 11 10

00 0 1 X 0

01 1 0 X 0

11 0 0 X X

10 0 0 X X

a=

AB

00 01 11 10

00 0 0 X 0

01 0 1 X 0

11 0 0 X X

10 0 1 X X

b=

Page 5: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

5

CD

CD

CD

AB

00 01 11 10

00 0 0 X 0

01 0 0 X 0

11 0 0 X X

10 1 0 X X

c=

AB

00 01 11 10

00 0 1 X 0

01 1 0 X 0

11 0 1 X X

10 0 0 X X

d=

AB

Page 6: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

6

CD

CD

00 01 11 10

00 0 1 X 0

01 1 1 X 1

11 1 1 X X

10 0 0 X X

e=

AB

00 01 11 10

00 0 0 X 0

01 1 0 X 0

11 1 1 X X

10 1 0 X X

f=

AB

00 01 11 10

00 1 0 X 0

01 1 0 X 0

11 0 1 X X

10 0 0 X X

g=

Page 7: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

7

2.3 Laboratorio

Se muestra el resultado de la simulación de las 3 funciones simplificadas del prelaboratorio.

Page 8: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

8

Simulación de las funciones booleanas de los segmentos del display con self checking. / Verilog test fixture created from schematic F:\Digitales y Microprocesadroes\Lab 2\Display\display.sch - Wed Sep 16 15:44:42 2015 `timescale 1ns / 1ps module display_display_sch_tb(); // Inputs reg Sa; reg Sb; reg Sc; reg Sd; // Output wire a; wire b; wire c; wire d; wire e; wire f; wire g; // Bidirs // Instantiate the UUT display UUT ( .Sa(Sa), .Sb(Sb), .Sc(Sc),

Page 9: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

9

.Sd(Sd), .a(a), .b(b), .c(c), .d(d), .e(e), .f(f), .g(g) ); // Initialize Inputs initial begin // apply inputs, check results one at a time Sa = 0; Sb = 0; Sc = 0; Sd=0; #10; if (a !== 0 || b !== 0 || c !== 0 || d !== 0 || e !==0 || f!==0 || g!==1) $display("0000 failed."); Sd = 1; #10; if (a !== 1 || b !== 0 || c !== 0 || d !== 1 || e !==1 || f!==1 || g!==1) $display("0001 failed."); Sc = 1; Sd = 0; #10; if (a !== 0 || b !== 0 || c !== 1 || d !== 0 || e !==0 || f!==1 || g!==0) $display("0010 failed."); Sc = 1; Sd=1; #10; if (a !== 0 || b !== 0 || c !== 0 || d !== 0 || e !==1 || f!==1 || g!==0) $display("0011 failed."); Sb = 1; Sb = 1; Sc = 0; Sd=0; #10; if (a !== 1 || b !== 0 || c !== 0 || d !== 1 || e !==1 || f!==0 || g!==0) $display("0100 failed."); Sd = 1; #10; if (a !== 0 || b !== 1 || c !== 0 || d !== 0 || e !==1 || f!==0 || g!==0) $display("0101 failed."); Sc = 1; Sd = 0; #10; if (a !== 0 || b !== 1 || c !== 0 || d !== 0 || e !==0 || f!==0 || g!==0) $display("0110 failed."); Sd = 1; #10; if (a !== 0 || b !== 0 || c !== 0 || d !== 1 || e !==1 || f!==1 || g!==1 ) $display("0111 failed."); Sa = 1; Sb = 0; Sc = 0; Sd =0; #10; if (a !== 0 || b !== 0 || c !== 0 || d !== 0 || e !==0 || f!==0 || g!==0) $display("1000 failed."); Sd=1; #10; if (a !== 0 || b !== 0 || c !== 0 || d !== 0 || e !==1 || f!==0 || g!==0 ) $display("1001 failed."); end endmodule

Page 10: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

10

El circuito armado y funcionando se muestra al final del informe en los anexos.

3 Conclusiones

Como se pudo observar, para la primera parte del laboratorio, las funciones boleanas se redujeron considerablemente al utilizar el álgebra de Boole, cabe recalcar que unos de los teoremas más útiles fueron: distributiva, identidad y elemento nulo, ya que con estos se pueden eliminar términos de la expresión boleana. En el entorno de ISE, dibujar circuitos lógicos en el esquemático era un procedimiento sencillo, como se pudo observar en la anterior práctica. La utilización de módulos creados como símbolos, para su futura simulación mediante “verilog test fixture” fue un procedimiento que permitió simplificar considerablemente el esquemático de los circuitos y tener un mejor control sobre los mismos. La utilidad ISim de ISE, nos permitió saber el comportamiento de nuestro circuito antes de implementarlo. Gracias a la simulación self-checking, pudimos observar si nuestro circuito simulado tenía alguna salida incorrecta y la consola mostraba cuál era la entrada que producía esta salida errónea. El código en Verilog es bastante similar a cualquier otro lenguaje de programación.

Page 11: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

11

4 Recomendaciones

Antes de dibujar una función boleana en un esquemático de ISE, es preferible usar los teoremas del álgebra de Boole para ver si se puede simplificarla y tener un circuito más pequeño. Para circuitos digitales muy grandes, es preferible crear módulos como símbolos de tal manera que se pueda tener un mayor control sobre distintas partes del circuito y el esquemático no sea engorroso de leer. Antes de armar un circuito lógico, es preferible simularlo con Isim para observar cómo están respondiendo las salidas y en el caso de que exista algún error, poder corregirlo dentro del esquemático en ISE.

5 Referencias y Bibliografía

Azram, M.; Daoud, J.I.; Elfaki, F.A.M., "Arithmetic version of Boolean algebra," in Computer Science and Information Technology, 2009. ICCSIT 2009. 2nd IEEE International Conference on , vol., no., pp.79-80, 8-11 Aug. 2009 doi: 10.1109/ICCSIT.2009.5234473 Recuperado de: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5234473&newsearch=true&queryText=boolean%20algebra Grout, I. (2008). Digital Design with FPGAs and CPLDs. Editorial Elsevier. Money, D. & Harris, S. Digital Design and Computer Architecture. Segunda Edición. Elsevier

6 Anexos

Display desplegando los 10 dígitos, de acuerdo a la simulación:

Page 12: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

12

Page 13: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

13

Page 14: Lab2diggggiiiiiiiiiiiiiiiiiiiiiii

Departamento de Ingeniería Eléctrica/Electrónica, Universidad An FranciCo de Quito

14