Вы находитесь на странице: 1из 8

Prctica 3

Nombre: Registro Acumulador Objetivo: Disear un circuito aritmtico con registro acumulador y realizar la transferencia serial de
datos

Materiales
Software: Galaxy de Cypress(Versin 4), Proteus ISIS(Versin 7.9), JEDEC to Proteus JEDEC Converter, Wellon Software Hardware: Programador Universal Wellon VP280 Componentes: DIP Switch, LEDs, Resistencias, GAL22V10, CI 7483, Circuito Anti rebote, CI 74195

Marco Terico
Un registro es un grupo de flip-flops. Cada flip-flop puede almacenar un bit de informacin. Un registro de n bits consiste en un grupo de n flip-flops capaces de almacenar n bits de informacin binaria.

Registro con carga paralela


Los sistemas digitales sincrnicos tienen un generador maestro de reloj que suministra un tren continuo de pulsos de reloj. Estos pulsos se aplican a todos los flip-flops y registros del sistema. El reloj maestro acta como una bomba que alimenta un latido constante a todas las partes del sistema. Se requiere una seal de control aparte para decidir que pulso de reloj especfico tendr efecto sobre un registro dado. La transferencia de informacin nueva a un registro se describe como carga del registro. Si todos los bits del registro se cargan simultneamente con un pulso de reloj comn, se dice que la carga se efecta en paralelo.

Registro con carga en serie


Decimos que un sistema digital opera en un modo en serie cuando la informacin se transfiere y manipula bit por bit, la informacin se transfiere bit por bit desplazando los bits del registro de origen hacia el registro destino.
c)

a)

b)

d)

Figura 1. Maneras de cargar un registro a) Carga serie/Salida Serie b) Carga Serie/Salida Paralelo c) Carga Paralelo/Salida Serie d) Carga Paralelo/Salida Paralelo

Desarrollo de la prctica
La prctica consiste en 2 partes, primero realizar un sumador en serie que guardara el resultado en un registro y pueda continuar sumndosele a ese nmero ya guardado. La segunda parte consiste en un sumador en paralelo, en el cual se pueda elegir el registro que se usara como acumulador y controlado por un PLD.

Primera parte
Se debe realizar un sumador en serie con los siguientes circuitos integrados: 74195 (Registros de 4 bits). Utilizar 2 CIs de este tipo. 7483 (Sumador de 4 bits) 7451 (Multiplexor) 7474 (Flip-Flop tipo D)

En esta primera parte la carga de los registros puede ser en serie o en paralelo, en este caso para explicar utilizaremos cargar los registros en paralelo, posteriormente la suma si se debe realizar en serie. El CI 74195 puede cargar tanto en paralelo como en serie, si queremos realizar la carga en paralelo solo hay que enviar un 0 lgico a su entrada PE (S/L en algunos CIs) y si queremos cargar en serie hacemos lo contrario, o sea, un 1 lgico a PE. Las entradas J y K nos sirven para hacer el ingreso del bit al registro de forma serie, esto lo hace de acuerdo a la siguiente tabla de verdad.
Tabla 1. Tabla de verdad del CI 74195.

Esto significa que con 11 en JK, tendrn un 1 entrando al registro y con 00 un 0 entrando al registro. En nuestro sumador 7483, nos encontramos con un CI sumador en paralelo de 4 bits, en esta primera parte se necesita un sumador en serie, entonces el 7483 lo volvern sumador de 1 bit, para ello enviarn el bit menos significativo del registro a la entrada de bit menos significativa en el sumador y las dems entradas del sumador las enviarn a 0, el carry out del 7483 lo conectan a un flip-flop tipo D que guardara ese carry, as cuando se del siguiente pulso y se efectu la suma de los 2 siguientes bits se tome en cuenta el carry de la suma anterior. La salida menos significativa ir a JK y la segunda salida menos significativa deber ir a la entrada del flip-flop para realizar el carry. Por ltimo la salida del flip-flop va al carry in.

Un registro debe servir como acumulador de la suma, es en este registro donde se usan las entradas JK, posteriormente a este acumulador deber sumrsele otro nmero y volver a acumular esa suma en el mismo registro, el problema radica en solo ingresar el nmero nuevo para la operacin de una segunda suma a un solo registro, para ello desconectamos el registro acumulador del reloj mediante un switch electrnico realizado con un multiplexor. Otro problema es que el carry de la suma anterior queda en la entrada del flip-flop, para solucionarlo simplemente se conecta el reset del flip-flop al switch del PE, as cada vez que se cambie la carga a carga paralela, este switch conectara con 0 y as el flip-flop reiniciara tambin.

Figura 2. Circuito Sumador simulado en ISIS.

*Nota: En el diagrama se puede ver una compuerta NOT a la entrada de K, esto es por qu lo que hay en K se niega antes entrar a al registro, o sea que si tenamos un 0 a las entradas de J y K en J entrara 0 y en K un 1. Con la compuerta NOT esto se corrige, ya que con un 0 en la salida S1 a J llega un 1, de ah a la NOT llega un 1 y sale un 0, luego ese 0 llega a K y se niega entrado un 1 al registro, de esta manera si se cumple la tabla de verdad del registro, esto se debe hacer solamente en la simulacin, ya que en el CI real no se necesita hacer este arreglo.

Segunda parte
La segunda parte de la prctica consiste en hacer tambin un sumador, pero ahora con carga paralela y con un sistema de control que nos manejara todo. Para este sumador, pueden guiarse del siguiente esquema propuesto.

DIP SWITCH 1

DIP SWITCH 2

SWITCH 3

REGISTRO A

REGISTRO B

SWITCH 4

SUMADOR
R

Figura 3. Esquema propuesto para el desarrollo de la segunda parte.

En este caso se utilizar solo un DIP switch y para el sistema de control se decidi que el usuario elija el registro donde quiere guardar, despus el usuario tiene la opcin de guardar otro nmero en otro registro o de cambiar el nmero que ya haba ingresado, una vez teniendo los 2 nmeros para la suma el usuario puede elegir a donde mandar el resultado, si al registro A o a el B, una vez seleccionado el registro acumulador, el sistema de control automticamente manda al usuario a ingresar el nuevo nmero para la siguiente suma en el registro que no fue seleccionado como acumulador. La carta ASM de este algoritmo es la siguiente:

Figura 4. Carta ASM del sistema de control del sumador.

Bsicamente el PLD solo abre y cierra switches (buffers tristate). En electrnica digital, la lgica triestado permite puertos de salida con valor 0,1 Hi-Z (Alta Impedancia).Es este ltimo estado el que proporciona los buffer triestado. El estado Hi-Z pone la salida en alta impedancia, haciendo que el pin ya no tenga relevancia en el circuito. Normalmente, la intencin de este estado es permitir a varios circuitos compartir el mismo bus o lnea de salida.
Tabla 2. Tabla de verdad de un buffer

Figura 5. Smbolo de un buffer tristate, funciona como switch electrnico.

El PLD manda pulso de reloj ya sea al registro A o B, los buffers en este caso tambin se hicieron con PLD, para reducir el nmero de CIs. Los cdigos de los PLDs fueron los siguientes:

Cdigo de los Buffers


library ieee; use ieee.std_logic_1164.all; entity bufer_tristate is port( enable1,enable2,in1,in2,in3,in4,in5,in6,in7,in8:in std_logic; out1,out2,out3,out4,out5,out6,out7,out8:out std_logic); end bufer_tristate; architecture arq_buffer of bufer_tristate is begin process ( enable1,enable2,in1,in2,in3,in4,in5,in6,in7,in8)begin if enable1 = '0' then out1<='Z'; out2<='Z'; out3<='Z'; out4<='Z'; else out1<=in1; out2<=in2; out3<=in3; out4<=in4; end if; if enable2 = '0' then out5<='Z'; out6<='Z'; out7<='Z'; out8<='Z'; else

out5<=in5; out6<=in6; out7<=in7; out8<=in8; end if; end process; end arq_buffer;

Cdigo de la FSM
library IEEE; use ieee.std_logic_1164.all; entity fsmpractica is Port( clk,r,o,res:in std_logic; salida:out std_logic_vector(5 downto 0) ); end fsmpractica; architecture arqfsm of fsmpractica is type estados is(e1,e2,e3,e4,e5,e6,e7,e8,e9); signal edo_presente,edo_futuro:estados; begin proceso1:process(edo_presente,o,r)begin case edo_presente is when e1=>salida<="000000"; if r='1' then edo_futuro<=e2; else edo_futuro<=e3; end if; when e2=>salida<="100000";edo_futuro<=e4; when e3=>salida<="010000";edo_futuro<=e5; when e4=>salida<="100010"; if o='1' then edo_futuro<=e1; elsif (o='0'and r='1')then edo_futuro<=e6; elsif (o='0'and r='0')then edo_futuro<=e7; end if; when e5=>salida<="010001"; if o='1' then edo_futuro<=e1; elsif (o='0'and r='1')then edo_futuro<=e6; elsif (o='0'and r='0')then edo_futuro<=e7; end if; when e6=>salida<="001000";edo_futuro<=e8; when e7=>salida<="000100";edo_futuro<=e9; when e8=>salida<="001010";edo_futuro<=e3; when e9=>salida<="000101";edo_futuro<=e2; end case; end process proceso1; proceso2:process(clk)begin if(clk'event and clk='1')then

edo_presente<=edo_futuro; end if; end process proceso2; end arqfsm;

*Nota: El cdigo de los buffers es opcional, se puede hacer tambin con CIs 74126 que son buffers tristate. Una vez obtenido los .jed, simplemente se queman los PLDs y se hacen las conexiones en el protoboard tomando por gua el siguiente esquemtico ya simulado en ISIS.

Conclusiones y Observaciones
Con esta prctica se alcanza el objetivo de cargar un registro en paralelo y en serie, se comprende el funcionamiento de un circuito sumador. Ahora sern capaces de implementar un sistema de control usando una mquina de estado y sabrn cmo utilizar los registros como acumuladores y seguir sumando nmeros al acumulado. Esta prctica es muy productiva ya que se combinan conocimientos de prcticas anteriores con nuevos conocimientos para poder crear este circuito, con esto podrn saber implementar una FSM en un circuito, que no tiene que ser necesariamente un sumador. Recordar que los pulsos de reloj que se manejan deben de ser con el circuito antirrebotes.

Вам также может понравиться