miércoles, 21 de octubre de 2015

Ejercicio resuelto con FPGA y VHDL con la tarjeta Basys2 Digilent






















EJERCICIO::  Con un DECODER38 y tres compuertas OR-5 de 5 entradas se requiere 
implementar un DETECTOR de 3 entradas y 3 salidas como se muestra en la figura, utilizando la FPGA disponible en la tarjeta Digilent Basys 2.


 Se trabaja con el software Xilinx ISE 10.1 y con la tarjeta Basys 2 de Digilent.
  
En la salida PRIMOS se enciende un LED, cátodo común, cuando en B2, B1, BO se coloque un número en binario cuyo equivalente decimal sea primo: 1, 2, 3,5 y 7.

En la salida MEN5 se enciende un LED, cátodo común, cuando en B2, B1, BO se coloque un número en binario cuyo equivalente decimal sea menor que 5: 0, 1, 2,3 y 4.

En la salida MAY2 se enciende un LED, cátodo común, cuando en B2, B1, BO se coloque un número en binario cuyo equivalente decimal sea mayor que 2: 3, 4, 5,6 y 7.

  1.      .      Escriba el programa VHDL  del DECODER38
  2.             Escriba el programa VHDL  de la compuerta OR_5
  3.       Si las señales internas son  S0,S1,S2,S3,S4,S5,S6,S7  escriba el programa completo en VHDL        utilizando el DECODER38 y las 3 compuertas OR_5 como Componentes, y utilizando la instrucción PORT MAP.
  4. Efectúe la asignación de pines con 3 interruptores como entradas y 3 leds como salidas.
  5. Verifique que el Detector diseñada funciona perfectamente cumpliendo los requerimientos propuestos.
S Solución:   
    Inicialmente, antes de escribir los códigos en VHDL se requiere haber configurado la FPGA:




   1. Se elabora el programa del decoder de 3 entradas y 8 salidas, se salva y se sintetiza
1.                                    

                Se  puede ver su esquemático RTL en bloque:


Al dar doble clik sobre el bloque vemos en detalle el esquemático del decodificador:



2.        2.  Se elabora luego el programa VHDL para la compuerta OR_5 así:


PHay que salvar y sintetizar este archivo. Para sintetizarlo hay que establecerlo como módulo superior: Set as Top Module


E El esquemático RTL  de la compuerta  OR de 5 entradas 




33,  Se elabora ahora el programa completo del DETECTOR  que integre los componentes DECODER38 y OR_5, de acuerdo a lo solicitado en el ejercicio:


s  Se salva y se sintetiza este archivo.Para sintetizarlo hay que establecerlo como módulo superior: Set as Top Module.  
   Al observar la forma como se va estructurando la implementación podemos observar la jerarquía establecida en el diseño:


        Veamos el esquemático del Detector:


4  4.  Asignación de pines de acuerdo a la tarjeta  (User Constrains:  Restricciones del Usuario).


Hay que tener en cuenta el manual de referencia o mirar los pines directamente en la tarjeta Basys 2:


Se escogen los tres interruptores (ENTRADAS)  y los tres leds (SALIDAS):


En el programa auxiliar PACE se debe salvar este archivo de extensión .UCF
S   Se debe efectuar luego la implementación para generar el archivo de programación. Se enciende la tarjeta para ser reconocida y finalmente con el programa auxiliar ADEPT  se efectúa la programación real en la tarjeta verificándose que funciona perfectamente.


sábado, 23 de noviembre de 2013

¿ Qué tanto sabemos ? Prueba lúdica: Mensaje encriptado

Solución:

Respuestas al test:  1.D     2.D     3.A     4.A     5.C     6.B     7.C     8.A     9.B     10.A     11.A
                              12.C     13.A     14.B     15.D     16.A     17.C


domingo, 29 de septiembre de 2013

¿ Qué tanto sabemos ? Prueba lúdica de lógica digital básica.

1. Piense en un número desde el 1 hasta el 63, sin decirlo ni escribirlo. Marque una X en la esquina superior      izquierda de cada carta en la cual se encuentra el número que ha pensado.
   
NÚMERO QUE USTED PENSÓ  SEÑALADO POR EL PROFESOR:     ....................

Explique cómo es posible que el profesor pueda "leer su mente"  y saber cual fue el número que Ud pensó.

Ayuda:  Sólo se requiere saber convertir del sistema numérico decimal a binario y viceversa. El 63 es el número mayor que se puede formar con 6 bits. Existe una carta por cada bit. 

2. Resuelva el siguiente crucigrama:




SOLUCIONES:

1.  Simplemente se suman los primeros números de cada carta en donde está el número.

29 por ejemplo equivale a  1 + 0 + 4 + 8 + 16 =  1 *  20 + 0 * 21   +  1* 22 + 1 * 23   +  1 *  24  +  0 *  25

El 29  está en las cartas que comienzan por 1, 4, 8 y 16. No está en las que comienzan por 2 y 32.

2. 

Nota del creador del blog:     Lúdica es aprender de una forma agradable y divertida.

miércoles, 26 de junio de 2013

Tutorial de Simulación en Altera

EJERCICIO: 1  Se dispone de un circuito integrado 7400 (cuatro compuertas Nand), y se requiere implementar una compuerta XOR. ¿ Cómo se hace la implementación ?

SOLUCIÓN:  Por Algebra de Boole:   (A xor B)´ =  A´ B´  +  A B,   de donde se puede obtener:
      A  xor  B  =  (A´ B´)´. ( A B )´  ( Aplicando el Teorema de De Morgan)
Luego:  A xor  B =  ( A + B ) ( A´ +  B´) ( Producto de Sumas)

Luego:   A  xor  B = A ( A' + B' ) +  B( A' + B' ) = A (AB)' + B(AB)' 

Implementamos el circuito con compuertas NAND utilizando el Altera Max  plus II:

Vamos a    File ...New ...

Se abre una ventana con los cuatro tipos de archivo con que se puede trabajar en Altera:

Elegimos el archivo del Editor Gráfico, cuya extensión es. gdf.    Damos OK en esta ventana, maximizamos y llamamos la compuerta Nand del integrado 7400, buscando que el archivo gdf que vamos a generar se ubique y se pueda guardar después  en la carpeta apropiada:
Si damos OK aparece la Nand en el editor gráfico.Podemos copiarla y pegarla para implementar el siguiente circuito con 4 compuertas:

Luego colocamos las entradas y salidas:  Las llamamos en el Editor Gráfico como INPUT y OUTPUT respectivamente.Editamos los nombres de Pines para que las entradas sean A y B y la salida sea XOR:

Salvamos este archivo con el nombre de xor4nand.gdf en la carpeta previamente seleccionada para este proyecto.
Luego sigue algo muy importante: asociar el archivo gdf al proyecto respectivo con el mismo nombre.


Para saber si todo va bien vemos la ruta donde está el archivo gdf y el proyecto en la carpeta donde estamos trabajando:
Al estar seguros que todo está correcto, salvamos y compilamos.

Luego  vamos a proceder a efectuar la simulación.Para ello vamos a MAX PLUS II y luego a Waveform Editor.
En el editor de Formas de Onda vamos a File y End Time fijamos un tiempo de 4 segundos.Luego en Options establecemos el ancho de grilla (grid size)   de 1 segundo. Damos click en hoja completa en la barra de herramientas de dibujo (Izquierda)
Luego introducimos los Nodos (Entradas y salidas del circuito). Para ello vamos a Node y luego al formato estandarizado de nodos (Enter Nodes from SNF...).
Se abre una ventana para adicionar  los Nodos...

Se da incialmente Click en List y luego con la flecha --> se seleccionan los Nodos. Se dá OK.para que las entradas y salidas se transfieran al Editor de formas de onda:
Se pueden ordenar las ondas, colocar por ejemplo, A encima de la B,  y dibujar los "ceros" y "unos" binarios en cada entrada.


Procedemos a salvar este archivo y a efectuar la simulación:


Damos OK para guardar el archivo SCF con las formas de onda:
Se verifica que efectivamente el circuito lógico con las 4 nand del integrado 7400 cumplen con la tabla de verdad de una compuerta XOR.


Se pueden agrupar las entradas A y B, y fijar sus valores en Binario.  


Dando  Click en la pirámide amarilla podemos observar lo que se ha trabajado hasta el momento:

Si damos Click podemos ir al archivo que se desee. Por ejemplo, demos click en xorcon4nand.gdf.
Al aparecer nuevamente el circuito lógico con las 4 nand demos ahora Click en Crear símbolo por defecto y Crear archivo incluido por defecto para que Altera  realice el símbolo esquemático  para nuestro archivo gdf con las 4 nand.

Si cerramos todo, y volvemos al editor gráfico podemos ahora observar que aparece nuestro archivo gdf.
 Al dar doble click sobre el símbolo esquemático debe aparecer el circuito lógico con las cuatro nand.

EJERCICIO 2 Se dispone de 3 circuitos integrados 74LS00 y se requiere implementar un circuito que convierta de Binario a Código GRAY para 4 bits. ¿Se puede efectuar dicha implementación ?

Solución:  Elaboramos una tabla de verdad con entradas en Binario  y Salidas en Código Gray:
                       
Elaborando Mapas de Karnaugh podemos llegar a las siguientes ecuaciones booleanas:
               G3 =  B3
               G2 =  B3 xor B2
               G1 =  B2 xor B1
               G0 =  B1 xor B0

Vamos ahora a Altera y en la misma carpeta del anterior ejercicio, creamos un nuevo archivo gráfico que salvamos con el nombre de conversor.gdf.



Lo compilamos y luego procedemos a efectuar la simulación, fijando el fin de tiempo en 16 segundos, y el tamaño de grilla en 1 segundo.
Agrupamos tanto Entradas como Salidas.
Por medio del contador (izquierda) fijamos en binario en las Entradas los valores desde 0000 hasta 1111.

Procedemos finalmente a Salvar y Simular:


Podemos comprobar por la Simulación que el circuito implementado obedece fielmente la tabla de verdad.
Luego si es posible con  los tres integrados 74LS00 implementar el circuito que convierta de binario a código Gray.  ¡Esa es la importancia de la Simulación. Saber si la implementación que se pretende efectuar verdaderamente va a funcionar !