DEPARTAMENTO DE INGENIERIA ELECTRICA Y ELECTRONICA -LOGICA DIGITAL INFORME ABRIL 9 DE 2011
Diseo de circuitos combinacionales con componentes MSI
Jorge Martinez (200023252, jfmartinez@[Link] )
Index terms multiplexor, decodificador, compuerta, display. I. INTRODUCCIN
provenientes de cualquier entrada hacia la lnea de salida. A los multiplexores tambin se les conoce como selectores de datos.
El diseo de circuitos combinacionales parte de la especificacin de un problema y culmina en un diagrama lgico de circuitos o conjuntos de funciones booleanas a partir de los cuales se puede obtener el diagrama lgico. Primero se inicia calculando el nmero de entradas y salidas requeridos para el funcionamiento del circuito. Deduciendo de la tabla de verdad, se define la relacin entre las entradas y salidas, de la cual se obtienen las expresiones booleanas simplificadas para cada salida en funcin de la variable de entrada, para que finalmente se obtenga el diagrama lgico, verificando que el diseo sea el correcto. Las funciones binarias de salida enumeradas en la tabla de verdad se simplifican con cualquier mtodo disponible, como manipulacin algebraica, el mtodo de mapa o un programa de simplificacin por computadora. En muchos casos habr diversas expresiones simplificadas para escoger.
II. MARCO TERICO
Fig 2. Smbolo lgico de un multiplexor de 4 a 1.
Un mtodo eficiente para implementar una funcin booleana utilizando un multiplexor de 4 a 1, que se encuentra en la Figura 2, utilizando la siguiente tabla de verdad.
x y z F
0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 Tabla 1. Implementacin de una funcin booleana con un multiplexor.
En los sistemas digitales, las cantidades discretas de informacin se representan con cdigos binarios. Un cdigo binario de n bits puede representar hasta elementos distintos de informacin codificada. Un decodificador es un circuito combinacional que convierte informacin binaria de n lneas de entrada a un mximo de lneas de salida distintas. Si la informacin codificada en n bits tiene combinaciones que no se usan, el decodificador podra tener menos de lneas de salida.
Fig1. Implementacin de un sumador completo con un decodificador.
Un multiplexor (MUX) es un dispositivo que permite dirigir la informacin digital procedente de diversas fuentes a una nica lnea para ser transmitida a travs de dicha lnea a un destino comn. El multiplexor bsico posee varias lneas de entrada de datos y una nica lnea de salida. Tambin posee entradas de seleccin de datos, que permiten conmutar los datos digitales
La funcin puede implementarse con un multiplexor de 4 lneas a 1. Las dos variables x y y se aplican a las lneas de seleccin en ese orden; x se conecta a la entrada y y se conecta a . Los valores de las lneas de entrada de datos se deducen de la tabla de verdad de la funcin. Cuando xy=00, la salida F es igual a z porque F=0 cuando z=0 y F=1 cuando z=1. Esto requiere aplicar la variable z a la entrada de datos 0. El funcionamiento del multiplexor es tal que, cuando xy=00, la entrada de datos 0 tiene una trayectoria hacia la salida y eso hace que F sea igual a z. De forma similar, podemos determinar las entradas que deben recibir las lneas de datos 1,2 y 3 a partir del valor de F cuando xy=01,10,11, respectivamente. El procedimiento general para implementar cualquier funcin booleana de n variables con un multiplexor. Las primeras n-1 variables de la tabla se aplican a las entradas de seleccin del multiplexor. Para cada combinacin de las variables de seleccin, evaluamos la salida en funcin de la ltima variable. Esta funcin puede ser 0,1, la variable o el complemento de la
DEPARTAMENTO DE INGENIERIA ELECTRICA Y ELECTRONICA -LOGICA DIGITAL INFORME ABRIL 9 DE 2011
variable. Luego estos valores se aplican a las entradas de datos en el orden correcto.
III. PROCEDIMIENTO
Dados los parmetros para la realizacin de este laboratorio, explicados en la gua, primero se procede a elaborar la tabla de verdad, teniendo en cuenta que estas salidas, correspondern a las entradas del decodificador de BCD a 7 segmentos, analizando que para ste ltimo, los valores lgicos de entrada, deben ser iguales para las dos configuraciones de salidas existentes (activas en bajo o en alto). En este caso, se debe examinar la compatibilidad entre las salidas y el display 7 segmentos. As por ejemplo, para un decodificador BCD 7 segmentos con salidas activas en alto, se debe utilizar un display ctodo comn conectado a tierra. En caso contrario, se utiliza un display de nodo comn conectado a fuente y respectivas resistencias de pull-up. Un parmetro especfico, indica que los interruptores para cada votante entran en conduccin cuando se vota s y en posicin abierta cuando se vota no. Teniendo en cuenta esto, para la realizacin de la tabla de verdad, se analizan los valores lgicos de entrada. As, se establece que cuando un interruptor entra en conduccin, se producir un valor de tensin bajo en la entrada y viceversa. De esta forma, la tabla de verdad queda de la siguiente manera:
E N C J A B C D 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 Tabla 2. Tabla de verdad.
Fig 3. Diagrama de entrada de datos de un mux de 8 a 1.
El problema en esto radica en que, circuitalmente en un circuito integrado con tecnologa TTL, cuando una entrada se encuentre abierta, esa entrada se interpreta como un valor lgico alto (1). Entonces esta configuracin sera intil ya que siempre se establecer un valor alto en las entradas y los selectores. Debido a que se presenta este problema, era necesario realizar una configuracin diferente en las entradas, considerando un valor bajo cuando el interruptor est activado y viceversa modificando tambin la tabla de verdad, la cual se muestra en la tabla 2. Esta nueva configuracin se muestra en la figura 4.
Fig 4. Diagrama de entrada de datos de un mux de 8 a 1, con valores lgicos corregidos.
Debido a que, era necesaria la utilizacin de multiplexores, se utiliz el mtodo alternativo explicado en el marco terico, ya que se determinan las variables correspondientes a cada entrada del multiplexor sin necesidad de crear los mapas de Karnaugh para cada salida. Tomando las variables E, N y C como selectores, los valores de entrada de cada multiplexor se muestran a continuacin:
Una dificultad encontrada al inicio de la realizacin de la tabla de verdad era, sobre la manera de establecer los valores lgicos a la entrada de cada multiplexor y sus respectivos selectores. Se estableci que, deba existir un valor de tensin alto cuando entraba en conduccin, y un valor bajo cuando ste se encontraba abierto.
Fig 5. Valores de entrada para el multiplexor con salida A.
DEPARTAMENTO DE INGENIERIA ELECTRICA Y ELECTRONICA -LOGICA DIGITAL INFORME ABRIL 9 DE 2011
Fig 6. Valores de entrada para el multiplexor con salida B.
Fig 9. Diagrama esquemtico circuito final.
Fig 7. Valores de entrada para el multiplexor con salida C.
El montaje final del circuito se muestra en la figura 9. Donde sus componentes principales se enumeran a continuacin: 1. DIP switch. 2. SN74LS04N: 6 negadores. 3. SN74LS151N: Multiplexores de 8 a 1. 4. Pulsador 5. SN74LS47N: Decodificador BCD 7 segmentos con salidas activas en bajo. 6. Display de 7 segmentos de nodo comn. 7. Resistencia de 220.
Fig 8. Valores de entrada para el multiplexor con salida D.
Despus de establecer las salidas de cada multiplexor, stas estarn conectadas a la entrada del decodificador, de manera que A representar el dgito ms significativo, y as en sucesivo orden hasta D como el menos significativo. En este caso, se utiliz un decodificador BCD 7 segmentos SN74LS47N, donde sus salidas son activas en bajo. Por lo tanto, se debe utilizar un display de nodo comn conectado a fuente. El diagrama esquemtico del circuito se muestra en la figura 9, donde en este caso si se tuvo en cuenta el parmetro donde se especifica que una entrada de multiplexor de 5 voltios, debe ser la salida de un negador cuya entrada se encuentra conectada a tierra. En las ltimas 4 figuras se obvia este parmetro.
Fig 10. Circuito contador de votos.
Para la realizacin de este montaje, se opt por diferenciar las entradas de los multiplexores por colores. Por ejemplo, las entradas a tierra se escogi el color marrn. Las entradas de la variable J , el color azul. Las entradas de J negadas, naranja y la entrada de la fuente (configurada como salida de un negador cuya entrada est conectada a tierra), se opt por el color verde. Adems las variables E, N y C (los selectores), se utilizaron puentes de color blanco. Sin embargo, en la etapa del decodificador no se tom en cuenta los colores de las entradas del decodificador, ni tampoco las entradas del display de 7 segmentos.
DEPARTAMENTO DE INGENIERIA ELECTRICA Y ELECTRONICA -LOGICA DIGITAL INFORME ABRIL 9 DE 2011 a<='0';b<='0';c<='0';d<='0';e<='0';f<='0'; g<='1';
PROGRAMACIN EN VHDL.
En esta etapa de labotatorio, se pidi adems, implementar el lenguaje VHDL para la realizacin de este mismo circuito. Se deban presentar tres algoritmos en diferentes descripciones de cdigo. Primero se debe desarrollar un multiplexor, utilizando descripcin algortmica. El algoritmo se presenta a continuacin:
-----------------------------------------------------library IEEE; use IEEE.STD_LOGIC_1164.all; ENTITY mux8_1 IS PORT (s0,s1,s2,in0,in1,in2,in3,in4,in5,in6,in7: IN STD_LOGIC; salida : OUT STD_LOGIC ); END mux8_1; ARCHITECTURE multiplexor OF mux8_1 IS BEGIN PROCESS(s0, s1, s2, in0, in1, in2, in3, in4, in5, in6, in7) BEGIN (s2='0' AND s1='0' AND s0='0') THEN salida <= in0; ELSIF (s2='0' AND s1='0' AND s0='1') THEN salida <= in1; ELSIF (s2='0' AND s1='1' AND s0='0') THEN salida <= in2; ELSIF (s2='0' AND s1='1' AND s0='1') THEN salida <= in3; ELSIF (s2='1' AND s1='0' AND s0='0') THEN salida <= in4; ELSIF (s2='1' AND s1='0' AND s0='1') THEN salida <= in5; ELSIF (s2='1' AND s1='1' AND s0='0') THEN salida <= in6; ELSIF (s2='1' AND s1='1' AND s0='1') THEN salida <= in7; END IF; END PROCESS; END multiplexor; -----------------------------------------------------IF
ELSIF (in3='0' AND in2='0' AND in1='0' AND in0='1') THEN a<='1';b<='0';c<='0';d<='1';e<='1';f<='1';g<='1'; ELSIF (in3='0' AND in2='0' AND in1='1' AND in0='0') THEN a<='0';b<='0';c<='1';d<='0';e<='0';f<='1';g<='0'; ELSIF (in3='0' AND in2='0' AND in1='1' AND in0='1') THEN a<='0';b<='0';c<='0';d<='0';e<='1';f<='1';g<='0'; ELSIF (in3='0' AND in2='1' AND in1='0' AND in0='0') THEN a<='1';b<='0';c<='0';d<='1';e<='1';f<='0';g<='0'; ELSIF (in3='0' AND in2='1' AND in1='0' AND in0='1') THEN a<='0';b<='1';c<='0';d<='0';e<='1';f<='0';g<='0'; ELSIF (in3='0' AND in2='1' AND in1='1' AND in0='0') THEN a<='1';b<='1';c<='0';d<='0';e<='0';f<='0';g<='0'; ELSIF (in3='0' AND in2='1' AND in1='1' AND in0='1') THEN a<='0';b<='0';c<='0';d<='1';e<='1';f<='1';g<='1'; ELSIF (in3='1' AND in2='0' AND in1='0' AND in0='0') THEN a<='0';b<='0';c<='0';d<='0';e<='0';f<='0';g<='0'; ELSIF (in3='1' AND in2='0' AND in1='0' AND in0='1') THEN a<='0';b<='0';c<='0';d<='1';e<='1';f<='0';g<='0'; ELSIF (in0='1' AND in1='1' AND in2='1' AND in3='1') THEN a<='1';b<='1';c<='1';d<='1';e<='1';f<='1';g<='1'; END IF; a<='0'; g<='0'; ELSIF (lt='0') THEN b<='0'; c<='0'; END IF; END PROCESS; END display; -----------------------------------------------------d<='0'; e<='0'; f<='0';
Este algoritmo, cumple la funcin de selector de datos, ya que al establecer un cdigo binario en los selectores, se seleccionar la salida apropiada. El cdigo en descripcin algortmica del decodificador se presenta a continuacin:
-----------------------------------------------------library IEEE; use IEEE.STD_LOGIC_1164.all; ENTITY decodificador IS PORT ( in0,in1,in2,in3,lt : -- Display 7 segmentos a,b,c,d,e,f,g : ); END decodificador; IN std_logic; OUT std_logic
En este caso, la tarjeta altera UP2, tiene un display, cuyos segmentos se encuentran activos en bajo, por lo tanto, en el cdigo debe especificarse un valor lgico bajo (0) di deseamos encender el respectivo led. De igual manera la tarjeta trae por defecto un push-button activo en bajo. Este dispositivo se hace til al momento de programar el cdigo del respectivo lamp-test que traen por defecto los decodificadores en circuitos integrados (CI). Y finalmente, se peda escribir el algoritmo que realizaba la operacin deseada, utilizando descripcin estructural.
-----------------------------------------------------Library Ieee; USE ieee.std_logic_1164.all; ENTITY final is PORT( E,N,C,J,lts: in std_logic; a,b,cled,d,eled,f,g : out std_logic); END final; ARCHITECTURE algoritmo of final is
ARCHITECTURE display OF decodificador IS BEGIN PROCESS (in0, in1, in2, in3,lt) BEGIN IF (lt='1') THEN IF(in3='0' AND in2='0' AND in1='0' AND in0='0') THEN
DEPARTAMENTO DE INGENIERIA ELECTRICA Y ELECTRONICA -LOGICA DIGITAL INFORME ABRIL 9 DE 2011 SIGNAL a3,a2,a1,a0: std_logic; BEGIN U1: entity work.mux8_1 PORT MAP (C,N,E,J,NOT J,'0','0','0','0','0',J,a3); U2: entity work.mux8_1 PORT MAP (C,N,E,'0',J,'1','1','1',NOT J,'0',J,a2); U3: entity work.mux8_1 PORT MAP (C,N,E,'0',J,'1','0',NOT J,J,'1',J,a1); U4: entity work.mux8_1 PORT MAP (C,N,E,J,J,NOT J, NOT J, J, J, NOT J, '1',a0); U5: entity [Link] PORT MAP (a3,a2,a1,a0,lts,a,b,cled,d,eled,f,g); end algoritmo; ------------------------------------------------------
Para verificar el funcionamiento del algoritmo completo, se cre un archivo waveform (.vwf) donde se muestran los valores lgicos en las entradas y salidas de la funcin completa. Los resultados se muestran en la figura 11. Este diagrama de temporizacin establece que, por ejemplo, para un valor binario de entrada 0010, indica que todas las salidas son ceros. Esto es correcto, ya que anteriormente se estableci en la tabla de verdad, que un 0 indicara voto afirmativo. Por lo tanto el valor 0010 indica que votaron la Sra E, que tiene 4 acciones, el Sr N, que tiene 3 acciones y el Sr. J, que tiene 1 accin, por lo que en las entradas del decodificador se debera mostrar el valor 1000, y en sus salidas , todos sus valores en bajo.
SN74LS06, que corresponde a seis negadores con colector abierto buffer. Este tipo de compuerta no era a considerar, porque por ser de configuracin colector abierto, actuaba como sumidero de corriente hacia tierra. Por lo tanto, durante las pruebas de funcionamiento del circuito completo, las entradas de la variable J negada y las entradas de fuentes ( que se explic anteriormente era un negador cuya entrada estaba conectada a tierra) no funcionaban. Ante esto se opta por reemplazar el integrado anterior por un negador comn, (SN74LS04), que cumpla la funcin de entregar corriente hacia los multiplexores. Otro aspecto a tener en cuenta, es la compatibilidad existente entre el display 7 segmentos y el decodificador, para su correcto funcionamiento. Adems, la funcin que cumplen las resistencias limitadores entre el display y el decodificador, y es la de limitar la corriente que circula por el 7 segmentos, evitando el recalentamiento de los leds internos en el display. Cabe resaltar que, si se instala un juego de resistencias NICAMENTE en los comunes de un display de nodo comn conectados a fuente, se experimentar variabilidad en las intensidades de luz de cada LED. Por lo tanto es recomendable y hasta necesario, colocar resistencias limitadores entre las salidas del decodificador y los segmentos del display. Otro aspecto a tener en cuenta es, la facilidad de implementar el mtodo estructural al momento de programar en VHDL, ya que puede compararse con el montaje de circuitos integrados en una tarjeta de desarrollo y el establecimiento de interconexiones entre ellos mediante cables. Utilizando este mtodo, podemos predefinir una funcin lgica para poder emplearla repetidas veces en un mismo programa o en otros programas. En VHDL se puede describir una funcin lgica predefinida y puede almacenarse como una declaracin de paquete en una biblioteca VHDL y puede llamarse tantas veces como sea necesario dentro de un programa. Por ejemplo, puede crear un componente VHDL para una puerta AND y utilizarlo tantas veces como desee sin tener que escribir un programa para una puerta AND cada vez que lo necesite. V. REFERENCIAS
Fig 11. Diagrama de tiempo.
[1] Cabe resaltar, que las salidas del decodificador cled y eled, se nombraron de esa manera, debido a que, el software Quartus II, no diferencia letras maysculas de minsculas. IV. CONCLUSIONES [2] [3]
Floyd Thomas, Fundamentos de Sistemas Digitales, 7ma ed. Pearson Education, 2000. M. Morris Mano, Diseo digital, 3ra ed. Prentice Hall. Gua de Laboratorios, VHDL.
Luego de haber realizado este laboratorio, se pueden establecer ciertas conclusiones. Primero que, un diseo prctico debe tomar en cuenta restricciones como el nmero de compuertas, el nmero de entradas de una compuerta, el tiempo de propagacin de la seal a travs de las compuertas, el nmero de interconexiones, las limitaciones de la corriente que proporciona cada compuerta y diversos criterios adicionales que es preciso considerar al crear diseos utilizando circuitos integrados. Puesto que los aspectos anteriores que se deben tener en cuenta dependen de las aplicaciones del circuito, se dificulta hacer recomendaciones sobre como implementar, por ejemplo, el nmero de compuertas ptimo, el clculo de resistencias, entre otros. Esto se evidenci durante la realizacin de este laboratorio, al momento de implementar el circuito integrado