Práctica 3 VHDL
Short Description
Download Práctica 3 VHDL...
Description
Práctica 3 Nombre: Registro Acumulador Objetivo: Diseñar un circuito aritmético con registro acumulador y realizar la transferencia serial de datos
Materiales
Software: Galaxy de Cypress(Versión 4), Proteus ISIS(Versión 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 Teórico Un registro es un grupo de flip-flops. Cada flip-flop puede almacenar un bit de información. Un registro de n bits consiste en un grupo de n flip-flops capaces de almacenar n bits de información binaria.
Registro con carga paralela Los sistemas digitales sincrónicos 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 actúa como una bomba que alimenta un latido constante a todas las partes del sistema. Se requiere una señal de control aparte para decidir que pulso de reloj específico tendrá efecto sobre un registro dado. La transferencia de información nueva a un registro se describe como carga del registro. Si todos los bits del registro se cargan simultáneamente con un pulso de reloj común, se dice que la carga se efectúa en paralelo.
Registro con carga en serie Decimos que un sistema digital opera en un modo en serie cuando la información se transfiere y manipula bit por bit, la información se transfiere bit por bit desplazando los bits del registro de origen hacia el registro destino.
a)
b)
c)
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 práctica La práctica consiste en 2 partes, primero realizar un sumador en serie que guardara el resultado en un registro y pueda continuar sumándosele a ese número 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 lógico a su entrada PE (S/L en algunos CIs) y si queremos cargar en serie hacemos lo contrario, o sea, un 1 lógico 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, tendrán 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 volverán sumador de 1 bit, para ello enviarán el bit menos significativo del registro a la entrada de bit menos significativa en el sumador y las demás entradas del sumador las enviarán 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á sumársele otro número y volver a acumular esa suma en el mismo registro, el problema radica en solo ingresar el número nuevo para la operación de una segunda suma a un solo registro, para ello desconectamos el registro acumulador del reloj mediante un switch electrónico 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 también.
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 teníamos un 0 a las entradas de J y K en J entraría 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 simulación, ya que en el CI real no se necesita hacer este arreglo.
Segunda parte La segunda parte de la práctica consiste en hacer también 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.
SWITCH 3
DIP
DIP
SWITCH 1
SWITCH 2
REGISTRO
REGISTRO
A
B
SWITCH 4
B
A
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, después el usuario tiene la opción de guardar otro número en otro registro o de cambiar el número que ya había ingresado, una vez teniendo los 2 números 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 automáticamente manda al usuario a ingresar el nuevo número 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.
Básicamente el PLD solo abre y cierra switches (buffers tristate). En electrónica digital, la lógica 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 intención de este estado es permitir a varios circuitos compartir el mismo bus o línea de salida. Tabla 2. Tabla de verdad de un buffer
Figura 5. Símbolo de un buffer tristate, funciona como switch electrónico.
El PLD manda pulso de reloj ya sea al registro A o B, los buffers en este caso también se hicieron con PLD, para reducir el número de CIs. Los códigos de los PLDs fueron los siguientes:
Código 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
View more...
Comments