domingo, 22 de noviembre de 2015

Cubo De Leds


CONTROL DE CUBO DE LED´S A TRAVES             LENGUAJE VHDL                   
Devia C. Haner, Abril D. Oscar y Zamudio José Antonio
renah17@hotmail.com, oaade007@gmail.com, josezamudio1982@gmail.com

Universidad ECCI




Resumen: El presente documento sintetiza como fue el  desarrollo del control de un cubo de led´s para lograr figuras y efectos 3D, utilizando un sistema digital a través de una FPGA, lo cual se realizó usando las salidas de la FPGA y aprovechando el lenguaje de descripción de hardware en VHDL.   
Abstract: This document summarizes as was the development of a bucket control LEDs to achieve figures and 3D effects, using a digital system via an FPGA, which was performed using the outputs of the FPGA and using description language VHDL hardware.

Palabras claves—FPGA, máquinas de estado, matriz y VHDL.

I.   INTRODUCCIÓN


Un cubo LED es como una pantalla LED, pero es especial en que tiene una tercera dimensión, lo que lo convierte en 3D. Piense en ello como muchas de las pantallas transparentes de baja resolución. En las pantallas normales es normal para tratar de apilar los pixeles tan cerca como sea posible a fin de hacer que se vea mejor, pero en un cubo uno debe ser capaz de ver a través de ella, y más espacio entre los píxeles (en realidad es voxels, ya que es en 3d) que se necesita. Dado que es mucho más trabajo hacer un cubo de LED que una pantalla de LED, por lo general son de baja resolución. Una pantalla LED de 4x3 píxeles es sólo 12

LEDs, pero un cubo de LED en 4x3x4 es de 48 LEDs, un orden de magnitud más difícil de hacer! Esta es la razón cubos LED sólo se hacen en baja resolución. Un cubo LED no tiene por qué ser simétrica, es posible hacer un 7x8x9, o incluso las formas extrañas.



Para ver el  informe completo  ir al siguiente link 

  

https://drive.google.com/open?id=0B0AnhVoJuNFJMEoxMm1saERqZE5SWFloa3JyaGpJSWV5clpj



Vídeo  de  demostracion:





sábado, 10 de octubre de 2015

Laboratorio # 6























  Haner Lizandro Devia
             renah17@hotmail.com
    Oscar  Armando Abril
              oaade007@gmail.com
    José Antonio  Zamudio
josezamudio1982@gmail.com





Asignatura dirigida por:
                                      Ing.  José Eduin Culma Caviedes                                                                   
Descripción      o      repertorio      de      saberes      de      los      integrantes      del     grupo:

 Estudiantes de ingeniería electrónica de octavo semestre con conocimientos en programación básica  en lenguaje VHDL  con  conocimiento en generación de  memorias ROM, CONTADORES, REGISTROS,  MULTIPLEXORES Y DEMULTIPLEXORES, DIVISORES DE RELOJ, manejo de entradas y salidas de la FPGA  creación de modelos esquemáticos  a través de código VHDL, tipos de MAQUINAS DE ESTADO 

Tema de interés para desarrollar aplicación:  MAQUINA DE ESTADO  

Laboratorio 6:




Descripción del laboratorio: 

Se genera un código en VHDL para este prototipo no generamos un  diseño en esquemático  para este vamos a realizar la simulación de una escalera eléctrica  ecológica que solo se acciona en el momento en que  que se encuentre  el usuario en el código implementamos  una variable de entrada que serán los sensores que van a tener la función  de detectar el inicio  y el fin  del a escalera  también declaramos unos valores los cuales corresponde a los estados y de esta forma  se declaran como tipo "state"  lo siguiente de aplicar  es un proseso modelado por un Case  que nos permitira ir pasando a cada estado dependiendo de las condiciones esto por  supuesto teniendoen cuenta una señal de reloj


Laboratorio # 7


























 Haner Lizandro Devia
             renah17@hotmail.com
    Oscar  Armando Abril
              oaade007@gmail.com
    José Antonio  Zamudio
josezamudio1982@gmail.com





Asignatura dirigida por:
                                      Ing.  José Eduin Culma Caviedes                                                                   
Descripción      o      repertorio      de      saberes      de      los      integrantes      del     grupo:

 Estudiantes de ingeniería electrónica de octavo semestre con conocimientos en programación básica  en lenguaje VHDL  con  conocimiento en generación de  memorias ROM, CONTADORES, REGISTROS,  MULTIPLEXORES Y DEMULTIPLEXORES, DIVISORES DE RELOJ, manejo de entradas y salidas de la FPGA  creación de modelos esquemáticos  a través de código VHDL, tipos de MAQUINAS DE ESTADO  ARQUITECTURA DE PROCESADORES 

Tema de interés para desarrollar aplicación:  ALU

Laboratorio 7:




Descripción del laboratorio: 


En este laboratorio se implementa un modelo de

una ALU (unidad aritmético lógica) simple con el fin de hacer operaciones  logica y 

aritméticas tales como la  suma de cuatro bits, la resta, nand, or, xor,esta ALU  

tiene una unidad de control  compuesta por una maquina de estados la cual 

selecciona la operación a realizar tiene un reset y una entrada de reloj el cual una 

vez seleccionada la operación es ejecutada mostrando el resultado en los leds de 

la FPGA.

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; 

use IEEE.NUMERIC_STD.ALL;

entity simple_alu is

port(   Clk : in std_logic; --clock signal

        A,B : in signed(3 downto 0); --input operands

        Op : in unsigned(2 downto 0); --Operation to be performed

        R : out signed(3 downto 0)  --output of ALU

end simple_alu;

architecture Behavioral of simple_alu is

--temporary signal declaration.

signal Reg1,Reg2,Reg3 : signed(3 downto 0) := (others => '0');

process(Clk)

    if(rising_edge(Clk)) then --Do the calculation at the positive edge of clock cycle.

        case Op is

            when "000" => 

                Reg3 <= Reg1 + Reg2;  --addition

            when "001" => 

                Reg3 <= Reg1 - Reg2; --subtraction

            when "010" => 

                Reg3 <= not Reg1;  --NOT gate

            when "011" => 

                Reg3 <= Reg1 nand Reg2; --NAND gate 

            when "100" => 

                Reg3 <= Reg1 nor Reg2; --NOR gate               

            when "101" => 

                Reg3 <= Reg1 and Reg2;  --AND gate

            when "110" => 

                Reg3 <= Reg1 or Reg2;  --OR gate    

            when "111" => 

                Reg3 <= Reg1 xor Reg2; --XOR gate   

            when others =>

                NULL;

        end case;       

end process;    


end Behavioral;


VÍDEO IMPLEMENTACION EN LA FPGA

Laboratorio #8





















  Haner Lizandro Devia
             renah17@hotmail.com
    Oscar  Armando Abril
              oaade007@gmail.com
    José Antonio  Zamudio
josezamudio1982@gmail.com





Asignatura dirigida por:
                                      Ing.  José Eduin Culma Caviedes                                                                   
Descripción      o      repertorio      de      saberes      de      los      integrantes      del     grupo:

 Estudiantes de ingeniería electrónica de octavo semestre con conocimientos en programación básica  en lenguaje VHDL  con  conocimiento en generación de  memorias ROM, CONTADORES, REGISTROS,  MULTIPLEXORES Y DEMULTIPLEXORES, DIVISORES DE RELOJ, manejo de entradas y salidas de la FPGA  creación de modelos esquemáticos  a través de código VHDL, tipos de MAQUINAS DE ESTADO  manejo de salida de video VGA 

Tema de interés para desarrollar aplicación:  MAQUINA DE ESTADO  

Laboratorio 8:





Descripción del laboratorio: 

Para esta practica generamos  códigos  en VHDL  creando  un numero de MEMORIAS ROM  donde se generan los caracteres que se van a presentar  en el monitor  VGA para nuestro ejemplo se generan  13 caracteres   también generamos  otros 2 códigos VHDL  uno que llamaremos control de vga como su nombre lo indica  este se encarga del control vga y de presentar los caracteres  que previamente generamos  en las MEMORIAS ROM para dar un orden  utilizamos las maquinas de estado que nos darán el estado anterior y el estado siguiente  y con este  vamos  a dar el orden de los caracteres par generar las palabras  y el ultimo código   es el que tiene el reloj  con la frecuencia apropiada  también tiene  todos los parámetros  de tiempos  para la sincronización  de lineas verticales y horizontales para de esta manera poder generar la imagen deseada  en este también encontramos el  control de los colores  para definir en la imagen. 

como lo comentamos anteriormente  para estos códigos no utilizamos  los diseños esquemáticos  en este caso utilizamos algo llamado  empaquetados  que los podemos realizar en la herramienta de XILINX  las conexiones entre los  códigos  se hacen a traves de las variables que utilizamos en común en todos los códigos VHDL


VÍDEO IMPLEMENTACION EN LA FPGA


Laboratorio #5



















  Haner Lizandro Devia
             renah17@hotmail.com
    Oscar  Armando Abril
              oaade007@gmail.com
    José Antonio  Zamudio
josezamudio1982@gmail.com





Asignatura dirigida por:
                                      Ing.  José Eduin Culma Caviedes                                                                   
Descripción      o      repertorio      de      saberes      de      los      integrantes      del     grupo:

 Estudiantes de ingeniería electrónica de octavo semestre con conocimientos en programación básica  en lenguaje VHDL  con  conocimiento en generación de  memorias ROM, CONTADORES, REGISTROS,  MULTIPLEXORES Y DEMULTIPLEXORES, DIVISORES DE RELOJ, manejo de entradas y salidas de la FPGA  creación de modelos esquemáticos  a través de código VHDL 

Tema de interés para desarrollar aplicación: PRACTICA MEMORIA ROM CON MATRIZ DE 8X8 

Laboratorio 5:




SCHEMATICS DE XILINX


IMAGEN DE LA IMPLEMENTACIÓN EN FPGA


Descripción del laboratorio: el laboratorio  intenta la generación  de un prototipo  de un PUBLIC  utilizando  la FPGA  y una MATRIZ DE 8X8   lo que realiza es un modulo de VHDL  de MEMORIA ROM  donde  se generan los caracteres  que serán mostrados  en la matriz,junto con un contador que sera el encargado de la lectura de todos los datos que  se encuentran el la memoria,  también generamos dos divisores de reloj uno con una frecuencia mas alta que es  la que nos dará la velocidad para  poder visualizar el carácter completo en la matriz  y el  otro divisor  es para  realizar el desplazamiento  de los caracteres en la matriz  y de esta forma poder visualizarlos todos caracteres generados en la memoria.

Se utilizaran 1 MULTIPLEXOR  y 2 DEMULTIPLEXORES  que serán los encargados de direccionar los datos en la salida de al FPGA  son los que controlaran los leds de la matriz, pero anterior a estos existirán algunos registros que son  los que conectaran  la memoria rom con el multiplexor  que controlan las filas de la matriz. 

VÍDEO IMPLEMENTACION EN LA FPGA




jueves, 3 de septiembre de 2015

Laboratorio #4





















  Haner Lizandro Devia
              renah17@hotmail.com
    Oscar  Armando Abril
              oaade007@gmail.com
    José Antonio  Zamudio
josezamudio1982@gmail.com





Asignatura dirigida por:
                                      Ing.  José Eduin Culma Caviedes                                                                   
Descripción      o      repertorio      de      saberes      de      los      integrantes      del     grupo:

 Estudiantes de ingeniería electrónica de octavo semestre con conocimientos en programación básica (dos niveles C++), técnicos en ingeniería electrónica y tecnólogos en electrónica industrial, además de conocimientos en programación de pic’s con PIC C compiler y Atmega, una materia vista de diseño gráfico en la cual aprendimos funcionamiento básico de FPGA, tipos de arquitecturas digitales programables y manejo de códigos ABEL, VHDL Y VERILOG con sus respectivas estructuras.

Tema de interés para desarrollar aplicación: PRACTICA MEMORIA ROM CON DISPLAY 16 SEGMENTOS 

Laboratorio 4:



SCHEMATICS DE XILINX


IMAGEN DE LA IMPLEMENTACIÓN EN FPGA


Descripción del laboratorio: Se trabajó con base en lo visto en clase de como guardar en la memoria y asignar valores en la misma con el fin de poder representar un display de 16 segmentos los nombres de cada uno de los integrantes del grupo para esto se debe tomar parte de lo trabajado en los laboratorios anteriores en los cuales se había generado el contador, la memoria, el reloj, el conversor y el decodificador alfanumérico.

Se debe tener en cuenta que la memoria debe ser con una entrada de 6 bit. Luego de tener el código en VHDL se crea el esquemático en Xilinx y se asignan los puertos para la FPGA en el esquemático y  con blog de texto UCF, por último se compila el programa y se carga en la FPGA mediante el programa DIGILENT ADEPT y se corre en la FPGA.


VÍDEO IMPLEMENTACION EN LA FPGA





Laboratorio #3
















  Haner Lizandro Devia
              renah17@hotmail.com
    Oscar  Armando Abril
              oaade007@gmail.com
    José Antonio  Zamudio
josezamudio1982@gmail.com





Asignatura dirigida por:
                                      Ing.  José Eduin Culma Caviedes                                                                   
Descripción      o      repertorio      de      saberes      de      los      integrantes      del     grupo:

 Estudiantes de ingeniería electrónica de octavo semestre con conocimientos en programación básica (dos niveles C++), técnicos en ingeniería electrónica y tecnólogos en electrónica industrial, además de conocimientos en programación de pic’s con PIC C compiler y Atmega, una materia vista de diseño gráfico en la cual aprendimos funcionamiento básico de FPGA, tipos de arquitecturas digitales programables y manejo de códigos ABEL, VHDL Y VERILOG con sus respectivas estructuras.

Tema de interés para desarrollar aplicación: PRACTICA MEMORIA ROM

Laboratorio 3:




SCHEMATICS DE XILINX


IMAGEN DE LA IMPLEMENTACIÓN EN FPGA


Descripción del laboratorio: Se trabajó con base en lo visto en clase, es decir, con los códigos y programa explicado por el docente en los cuales se realiza un convertidor serie-paralelo  mediante una memoria por código la cual se le asignan las salidas que se deben representar en led’s de la FPGA en un espacio de memoria para cada número en binario que va a ser representado y que se activaran con el contador en la memoria y serán pasados al convertidor mediante otro bloque o módulo de código.

Luego de tener el código en VHDL se crea el esquemático en Xilinx y se asignan los puertos para la FPGA en el esquemático y  con blog de texto UCF, por último se compila el programa y se carga en la FPGA mediante el programa DIGILENT ADEPT y se corre en la FPGA. 

VÍDEO IMPLEMENTACIÓN  EN LA FPGA