top of page

Laboratorio 18: PSoC: El sumador en serie.

Juan David Combita Murcia, 20181007017

Electrónica Digital

Grupo 743

Universidad Distrital Francisco José


Resumen:


En esta practica se desarrollara un sumador serial de un dígito.


I. Objetivos:


Objetivo general:


Implementar un sumador serial en BCD.


Objetivos específicos:


1) Implementar los registros de carga paralela y salida serie con desplazamiento a la derecha.

2) Recordar e implementar el sumador completo.

3) Utilizar el teclado matricial para cargar los datos y controlar la lógica del dispositivo.

4) Implementar el sumador serial de BCD con los dos bloques anteriores.

5) Realizar visualización dinámica.


II. Recursos:


1) PSoC Creator.

2) PSoC5 y tarjeta de desarrollo.


III. Marco teorico:


Registro de desplazamiento con entrada serie y salida paralelo:


En este tipo de registro los bits de datos se introducen en serie (empezando por el bit situado más a la derecha). Dichos bits se extraen del registro; en un registro con salida paralelo, se dispone de la salida de cada etapa. Una vez que los datos se han almacenado, cada bit se presenta en su respectiva línea de salida, estando disponibles todos los bits simultáneamente, en lugar de bit a bit como en el caso de la salida serie. [1]


Figura 1. Registro de desplazamiento con entrada serie y salida paralelo.


Registro de desplazamiento con entrada paralelo y salida serie:


La Figura 2 ilustra un registro de desplazamiento de 4 bits con entrada paralelosalida serie y su símbolo lógico típico. Observe que tiene cuatro líneas de entrada de datos D0, D1, D2 y D3 y una entrada shift/load (desplazamiento/carga), que permite cargar en paralelo los cuatro bits de datos en el registro. Cuando shift/load está a nivel BAJO, las puertas G1 a G3 se activan, permitiendo que cada bit sea aplicado a la entrada D de su respectivo flip-flop. Cuando se aplica un impulso de reloj, los flipflops con D = 1 pasan al estado SET, y los flip-flops con D = 0 pasan al estado RESET, almacenándose de este modo los cuatro bits simultáneamente.

Cuando shift/load la entrada está a nivel ALTO, las puertas G1 a G4 se inhiben y las puertas G5 a G7 se activan, permitiendo que los bits de datos se desplacen hacia la derecha, pasando de una etapa a la siguiente. Las puertas OR permiten el desplazamiento normal o la introducción de datos en paralelo, dependiendo de qué puertas AND se hayan activado según el nivel de la entrada shift/load. Observe que FF0 dispone de una sola puerta AND para desactivar la entrada paralelo, D0. No precisa una implementación AND/OR ya que no hay entrada de datos en serie.[2]

Figura 2. Registro de desplazamiento con entrada paralelo y salida serie.


IV. Simulaciones y análisis de resultados:


Para llevar a cabo el ejercicio propuesto se tuvo en cuenta el siguiente esquema, donde se realiza el ingreso de 2 dígitos, A y B, haciendo uso del teclado matricial. Estos se almacenan en 2 registros de desplazamiento paralelo y salida serie, para poder implementar sus salidas en el sumador. Este resultado se guarda en un registro de entrada serie y salida paralelo, para poder hacer la visualización del numero. Todo esto es controlado por un generador de pulsos:

Inicialmente se implemento el decodificador de teclado matricial de practicas anteriores para poder hacer el ingreso de datos, al igual, se realizo el decodificador a binario natural y un decodificador para separar los números de las letras y signos del teclado matricial, de tal forma que los signos y letras queden en los 3 bits mas significativos y los numero en los 4 menos significativos.


Decodificador de teclado matricial:



Se implemento un Demux para los diferentes códigos en binario para las letras y señales del teclado, donde implementaremos A para ingresar el dato A, B para almacenar el dato B y C para realizar la suma. Ademas se implementaron 3 FF D para guardar los anteriores eventos, donde.


Para guardar los datos de entrada, A y B, se realizo un registro de desplazamiento con entrada paralelo y salida serie, para realizar la suma, y paralelo, para realizar la visualización. Estos tienen 2 señales de reloj, uno para realizar la carga de datos y otro para realizar la suma, el cual esta dado por el generador de pulsos. Ademas se habilita cuando EnA (salida de una FF D) o EnC, donde en uno se realiza el almacenamiento y en otro el desplazamiento serie a la derecha:


Registro de desplazamiento:


Luego se realizo un registro de desplazamiento con entrada serie y salida paralelo, para la visualización del resultado. Se implemento un generador de señales se activa cuando EnC es 1, y se des-habilita cuando su conteo llega a 5, ya que son los pulsos necesarios para realizar la suma de 4 bits. Y para este proceso también se implemento un FF D para hacer la suma por pulsos y un sumador de 1 bit con compuertas, realizado en practicas anteriores:


Registro de desplazamiento:


Generador de pulsos:


Finalmente se realizo la visualización dinámica de los datos y el resultado, implementando una señal de reloj a alta frecuencia y EnB y EnC para seleccionar el dato a visualizar:


Diseño final:



Asignación de pines:


V. Conclusiones:


La mayoría de procesadores cuentan con buses de 32 a 64 bits fijos para realizar diferentes procedimientos, por ello, la suma serial es un método mas optimo y eficiente a la hora de realizar la suma de 2 dígitos.


VI. Vídeo:



VII. Descarga:






Referencias:


[1] Thomas L. Floyd, fundamentos de sistemas digitales, Madrid, PEARSON EDUCATION S.A., 2006.

Comments


bottom of page