domingo, 24 de enero de 2021

laboratorio 10: decodificador matricial y Biestables

 

Laboratorio 10:Decodificador matricial y Biestables

Juan Pablo López Guevara 20171005073

Universidad Distrital francisco José de caldas. Bogotá octubre
2020

Introducción

Debido a la necesidad de manejar entradas como teclados y similar, agregamos ahora el teclado matricial de la tarjeta de desarrollo con el fin de no tener que usar los dip switch. Los transistores nos permiten almacenar datos en forma de bits, comprobaremos las tablas de verdad de los circuitos biestables disponibles en PSoC creator, así como programaremos algunos en Verilog.

Objetivos

  • Implementar el decodificador de teclado matricial propuesto por la guía
  • Con mapas, convertir el código resultante en código Binario
  • Programar los biestables asíncronos por componentes y los sincronos por código Verilogl.

 

Marco Teórico

Teclado matricial

El uso de teclados para introducir información en un dispositivo es muy común debido a que simplifica el manejo de datos. Por esto, se encuentran ampliamente en dispositivos de uso cotidiano como cajeros y múltiples sistemas de seguridad.

Los teclados matriciales por lo general usan un arreglo de botones que se ubican por filas y columnas. Un teclado matricial 4x4 (como el de la tarjeta) permite manejar 16 botones con solamente 8 lineas. El método para saber que botón se ha presionado consta de un barrido en las filas de tal manera que se encuentre el botón presionado buscando un cero en las columnas.

Figura 1. teclado matricial

Biestables

Existen de dos tipos, latch y flip-flop. Los latch son aquellos cuya respuesta solo depende de las entradas de exitación, pero no hay un control como un reloj. A diferencia de estos, los flip-flop se caracterizan por tener señales de control como lo puede ser un reloj. Sin embargo, en muchos de los casos podremos construir un flip-flop a partir del funcionamiento de un latch, como lo veremos en seguida.

Latch SR

Este tipo de biestable tiene 2 entradas y 2 salidas (la salida y su complemento). La tabla de verdad es la tabla 1.

tabla 1. Tabla de verdad biestable SR

De aqui tenemos Q+=S+R'Q para compuertas NOR,

Q+=(S'*(R'Q)')' para compueras NAND

Así, tenemos 2 opciones para usar este latch

Figura 1. Biestable SR con NOR

Figura 2. Biestable SR con NAND

Flip-flop SR

Para construir este flip-flop, basta con agregar un habilitador de las entradas S y R. Para hacerlo con el mismo tipo de compuerta, analizaremos el comportamiento de una compuerta NAND como habilitador (negativo).

74LS38 - Compuerta Lógica NAND - TdElectrónica

Si tomamos la entrada A como reloj, veremos que cuando es 0, tenemos siempre de salida HIGH (lo que en logica negativa seria 0) y cuando tenemos 1, tenemos el complemento de B. Esto nos permite hacer un habilitador para el circuito de la figura 2. de donde este será la señal reloj.

Figura 3. Flip-flop SR

Tabla 2. Flip-flop SR. No cambia de estado si E no esta en HIGH

Latch D (delay)

Sirve a modo de memoria o como delay. Su tabla de verdad es la siguiente

y su funcion logica es Q+=D

Podemos construir un latch D a partir del latch SR de la figura 1.

Figura 4. latch D a partir de SR

Flip-flop D

A partir del flip flop SR de la figura 3 podemos construir el flip-flip D

Latches in Digital Logic - GeeksforGeeks 

latch jK

Es la mejor del SR, eliminando la restricción en que no podian ser iguales en nivel alto las entradas. Su tabla de vedad es la siguiente


y su funcion logica es Q+=QK'+Q'J

Flip-flip JK

Básicamente, aprovechamos la logica del Flip-flop SR agregándole una nueva entrada para el reloj

JK Flip-flops

Latch T

Basicamente es un latch JK con ambas entradas (J y K) en una unica entrada, su tabla de verdad es la siguiente


y su función lógica es Q+=T'Q+TQ'=T(+)Q

Flip-Flop T

Es un flip-flop JK con las entradas J y K siendo la misma 

Designing of T Flip Flop

Metodología

Para este laboratorio, implementaremos el circuito dado en la guía, tomaremos la tabla de datos de salida del teclado matricial,  usando mapas construiremos un deco para convertirlos a binario y programaremos los biestables vistos en el apartado anterior.

Decodificador de teclado matricial

circuito dado en la guía

Para implementarlo más facil, crearemos un bloque para el deco2a4 y el codificador 4 a 2.

Decodificador 2 a 4

Codificador 2 a 4

Así, tenemos la implementación del decodificador dado en la guia

Decodificador matricial

Usando este decodificador, encontramos la siguiente tabla de verdad

Por medio de mapas, encontramos las siguientes funciones logicas

para B0

y su función lógica resumida sería: S3(S1S2'+S0S2)+(S1+S3)'


Para B1

y su función lógica B1=(S0+S1)'S2+S1(S2+S3)'+S0(S2'+S1'S3)

Para B2

Y su función lógica B2=S3((S0+S2)'+S0S1')+S2(S0(+)S1)'

Para B3

y su función logica B3=S0(S2+S1)+S2(S1(+)S3)

Luego juntamos todo en un único deco


Así juntamos ambos circuitos y tenemos el siguiente resultado


Biestables

Comenzamos por los Biestables asíncronos

SR

D

JK
T

ahora con los síncronos (código verilog)

SR (usando compuertas nand, figura 2)



JK (usando case, ya que de la forma vista en el apartado teórico nos surgieron problemas)

T (instanciando el JK anterior)

A través de este link podemos evidenciar el funcionamiento de los circuitos desarrollados en esta practica.

Conclusiones

Concluimos que claramente es importante el uso de la tarjeta de desarrollo, ya que sin esta no seriamos capaces de evidenciar correctamente los errores a la hora de programar los pasos en verilog, ya que como nos pasó con el biestable sincrono JK, tuvimos que recurrir a un case recomendado en internet, ya que el circuito no tenia el comportamiento deseado cuando se usaban compuertas.

Es más que claro que se comprobó que los biestables son circuitos secuenciales en los que toca tener en cuenta los estados anteriores para entender el estado siguiente. Estos nos brindan un gran abanico de posibilidades, desde memorias, comparadores, divisores de frecuencia y demás.

Por otro lado, vemos lo útil de usar teclado envés de usar los pull up de la tarjeta, ya que aumenta la comodidad del usuario.






No hay comentarios:

Publicar un comentario

ecuaciones para fisica