algebra de boole Arquitectura de von neumann

Unidad N°1. Introducción a Sistemas Digitales Álgebra Booleana Para trabajar con los sistemas digitales se tuvo que desarrollar la matemática necesaria, esto fue posible, entre otros, gracias al matemático inglés George Boole (1810 - 1864), quien desarrolló la teoría en la que se basan los computadores para manipular los datos, desarrolló el álgebra de Boole. La lógica boolaeana está compuesta por una serie de operaciones que se aplican sobre las variables booleanas, las cuales sólo pueden tener dos valores o estados: true o false, set o reset, 1 ó 0, cerrado o abierto, etc. Las operaciones lógicas al actuar sobre las variables de entrada booleanas da lugar a una función booleana.

Para implementar un sistema digital necesitamos determinar el circuito lógico, el cual va a ser desarrollado por un conjunto de compuertas interconectadas, cada una de ellas realizando alguna operación lógica, cumpliendo lo establecido en el álgebra de Boole. En este circuito lógico se procesarán los bits, para ello se hace efectivo el “1” y el “0” a través de voltajes, se usa dos niveles de voltajes fijos: un nivel alto para el “1” y un nivel bajo para el “0”.

Los sistemas digitales están representados a través de circuitos digitales, como el sistema digital es un conjunto de componentes que interactúan entre si y que tienen un objetivo, los componentes son los componentes básicos digitales, o sea las compuertas digitales (AND, OR, NOT, etc.). Al combinar las compuertas se da a lugar a otros tipos de elementos digitales como compuertas complejas, codificadores, memorias, flip-flops, microprocesadores, microcontroladores, etc. Los sistemas digitales pueden resultar muy complejos, en realidad se construyen de un número muy grande de circuitos muy simples, pero siempre trabajan con variables digitales, las cuales solamente toman dos valores posibles: "0" y "1". Los posibles estados de las variables de entrada que afectan a los sistemas digitales se pueden representar en una tabla de estado también llamada tabla de verdad. Las tablas de verdad describen el funcionamiento del sistema digital, pueden tener varias columnas en la entrada, esto depende de la cantidad de variables de entrada, tiene además las columnas de las variables de salida, las cuales pueden ser una o más, dependiendo también del sistema digital. La tabla presenta a la izquierda las variables de entrada y debajo de ellas los estados de las entradas, las cuales todas las combinaciones posibles de las entradas. El número de combinaciones es igual a 2n, donde n es el número de las variables de entrada de la tabla de verdad. Por ejemplo si la tabla tiene dos variables de entrada, tendrá 22 estados o sea 4 estados; si la tabla tiene 3 variables de entradas, entonces habrán: 23 = 8 combinaciones, por lo tanto 8 estados. La salida tomará el valor de cero o uno, en cada estado, dependiendo del sistema, tal como se puede apreciar en las dos tablas siguientes: Para desarrollar un sistema digital debemos partir de su tabla de estado o tabla de verdad, en ella se debe haber establecido cómo debe responder cada una de las salidas frente a cada estado de entrada. Si tenemos la tabla de estado, de ella podemos generar la función lógica de la salida, luego la función lógica simplificada y finalmente hacer el circuito lógico en base a las compuertas lógicas. Para comprender fácilmente esto, lo vamos a explicar en base a un ejemplo sencillo, usaremos para ello la tabla de estado de la compuerta OR de dos entradas. En la tabla de estado se puede apreciar las variables de entrada A y B, las cuales generan 4 estados diferentes, por otro lado vemos que la salida Z es igual a cero en el estado “00” y uno en los tres estados restantes. Para determinar la función lógica de la salida debemos tener en cuenta que esta se obtiene como una suma de términos, la cantidad de términos depende de la cantidad de unos que tenga la salida. Cada término depende del producto de las variables de entrada y del estado en el cual la salida vale “1”. Para cada estado las variables se verán afectadas si para ese estado valen cero, así por ejemplo, en el estado 01 A toma el valor cero, por lo tanto el término será ĀB. Resumiendo podemos decir que la función lógica de la salida Z es igual a la suma de términos, donde Z vale “1”. Si las variables fuesen A, B y C y en el estado 011 la salida Z es igual a “1”, entonces, el término para este estado será ĀBC, donde vemos que ha sido negado la variable A, mientras que B y C no han sido alterados ya que se quiere que este producto sea igual a uno en ese estado. Note que la función lógica solo considera los 1. Luego de haber determinado la función lógica, esta expresión no debe ser usada para implementar el circuito lógico, antes se debe simplificar y para ello se necesita conocer el álgebra de Boole, con cuyas identidades podemos obtener una expresión más sencilla y resulte un circuito con el menor número de compuertas, como el obtenido a continuación.

Finalmente hemos obtenido la función lógica simplificada de Z y ésta nos va a servir para obtener el circuito lógico, el cual para este caso solo se trata de una compuerta OR Como vemos, para el desarrollo de un sistema digital, la determinación de la función lógica es sencilla, lo determinamos simplemente como una suma de términos, lo complicado es la simplificación y para ello debemos conocer las propiedades e identidades del álgebra de Boole. Combinación de Operaciones Lógicas En un sistema digital y con mayor razón en un computador, las operaciones lógicas no se usan de forma aislada, sino que se usan en combinaciones en algunos casos extremadamente complejas, veamos un ejemplo simple, en donde la función lógica simplificada obtenida es la siguiente: Z = Ā . B + C En esta expresión vemos primero un producto entre Ā y B, esto lo conseguimos con una compuerta AND la cual multiplica, necesitamos también un inversor para obtener Ā y finalmente una compuerta que sume la salida del AND con la entrada C. El circuito queda así: Como todo sistema digital, éste debe tener su tabla de estado desde la cual se ha obtenido la función lógica que hemos utilizado para el circuito lógico. Si deseamos llenar la tabla de estado, primero debemos considerar que la tabla tiene como variables de entrada A, B y C, con 8 estados de entrada y la salida la obtendremos de la expresión inicial, reemplazando los valores que toma cada una de las variables en cada uno de los estados. Por ejemplo para el estado “000” obtendremos Z = 1 x 0 + 0 = 0. De igual forma se puede obtener para los otros estados. Desarrollo de Sistemas Digitales Para desarrollar un sistema digital se debe primero, entender claramente el problema, ello va a permitir deducir la tabla de estado que define el problema. Una vez que se deduce la tabla, el desarrollo es un simple proceso metódico, el cual nos permite determinar la función lógica, simplificar y luego implementar el circuito lógico. Como vimos, la función lógica se obtiene como una suma de términos; para cada estado, donde la variable de salida es igual a 1. Cada término es un producto de las variables de entrada, pero irán negadas en el caso de que en dicho estado la variable tenga el valor de 0. Luego se debe hacer el proceso de simplificación de la función lógica y para ello se recurre a las propiedades vistas anteriormente. Finalmente, se hará la representación de la función simplificada a través del circuito lógico, donde cada producto es reemplazado por compuertas AND, cada suma es representada por las compuertas OR y para la inversión o negación usamos al inversor o compuerta NOT. Ejemplo de un sistema digital Sea el siguiente sistema de 3 variables de entrada A, B y C, y una variable de salida Z. Z es igual a 1 cuando el número de estado sea mayor que 2. Se desarrolla la tabla de estado colocando un 1 en cada estado donde tenga un número mayor que 2, hay que tener en cuenta que cada estado tiene un número que lo identifica, tal como se puede apreciar en el siguiente gráfico. En el gráfico anterior se puede apreciar además de la tabla de estado, la función lógica y la simplificación, donde se ha buscado algunas expresiones que permitan simplificar. Para ello debemos tener presente las propiedades de álgebra de Boole. Nos falta solo el circuito lógico, el cual vemos que es sencillo, se trata solo de dos compuertas una AND para la multiplicación y un OR para la suma. Si queremos implementar físicamente estos sistemas digitales, es necesario para ello las compuertas lógicas, las cuales vienen en chips con diferentes tipos de compuertas. Para tener una idea de ello veamos algunos ejemplos: En el gráfico apreciamos el circuito integrado (chip) 7400, el cual tiene cuatro compuertas NAND de dos entradas, el chip tiene 14 pines, donde dos de ellos se usan para recibir la energía (5 voltios), el pin 7 para 0 voltios y el 14 para 5 voltios. Otros ejemplos son los siguientes, donde vemos a 4 compuertas AND de dos entradas y el otro es de 4 compuertas OR e dos entradas. En el gráfico anterior vemos un chip que tiene tres compuertas NOR de tres entradas, con lo que queremos indicar que hay diferentes tipos de compuertas. Finalmente mostramos a cuatro compuertas OR Exclusivas.