Instituto Polit�cnico Nacional
Instituto Politécnico Nacional
"La Técnica al Servicio de la Patria"
Error
  • JUser: :_load: No se ha podido cargar al usuario con 'ID': 77

 

Boletín No 46
1 de enero 2015

 

 

IMPLEMENTACIÓN DE CALCULADORA MAYA EN TARJETA SPARTAN 3A/3AN

 

Isis Tatiana Galván García, Email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. ,
Roberto Antonio Orozco Vázquez, Email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. ,
Antonio Guadalupe Cruz Bautista, Email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. ,
Hind Taud, Email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. ,
Juan Carlos Herrera Lozada, Email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. .
Centro de Innovación y Desarrollo Tecnológico en Cómputo. I.P.N

 

 

Abstract

Este trabajo trata de la implementación de una calculadora maya en código VHL, empleando software Xilinx Project Navigator, en FPGA Spartan 3A/AN en el cual se diseñó una máquina de estados con código propio (sum, res, mul, div) que recibe datos del teclado por medio del puerto ps2; realiza las cuatro operaciones básicas de suma, resta, multiplicación y división, lo cual muestra en el LCD la representación de dichos números mayas, así como el resultado de dichas operaciones. Los elementos empleados son: FPGA Spartan-3A/AN, Software Xilinx con código VHL, Lap Top con procesador Intel Core 2 Duo a 1.6 GHz, de 4GB de RAM, Windows 7 Service Pack 1, de 32 bits, con puerto usb, cable de conexión USB (de tarjeta a lap top) y teclado con puerto PS/2.

 

 

Introducción

Los mayas crearon un sistema de numeración vigesimal; los números mayas se construyen a partir de 20 numerales (Figura 1), los cuales a su vez están formados con tres símbolos básicos: un punto, una barra horizontal y una concha o caracol (Figura 2).

Figura1
Figura 1 - Numerales Mayas del 0 al 19

 

Figura2
Figura 2 - Símbolos mayas del 1, 5 y 0

La Civilización Maya describió y uso el concepto de Cero (Figura 3), siendo en una Estela de Uaxactun, en el Peten, Guatemala, el uso más antiguo documentado hasta el día de hoy, cerca del 200 d.C., antes que cualquier otra cultura en el mundo. Al igual que el cero, los mayas fueron los primeros en usar el sistema vigesimal posicional (Figura 4), que les permitió escribir hacer grandes cálculos astronómicos y matemáticos.

Figura3
Figura 3 - Cero

 

Figura4 Figura5
Figura 4 - Sistema vigesimal maya

Funcionamiento de las operaciones en el LCD Partiendo de que el sistema vigesimal maya es representativo, se realiza una tabla que contiene los símbolos mayas del cero al veintiuno, que son los símbolos que se ocuparán en el LCD. El código completo puede obtenerse del siguiente enlace: https://www.dropbox.com/s/hbzvck14jrkimen/UBC.txt El número cero representado por el símbolo “.” se forma como sigue:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity Tabla is
Port(
entradaUA : in std_logic_vector(4 downto 0);
tabla_sal1 : out std_logic_vector(7 downto 0);
tabla_sal3 : out std_logic_vector(7 downto 0);
tabla_sal5 : out std_logic_vector(7 downto 0);
tabla_sal7 : out std_logic_vector(7 downto 0);
tabla_sal9 : out std_logic_vector(7 downto 0);
tabla_sal11 : out std_logic_vector(7 downto 0);
tabla_sal13 : out std_logic_vector(7 downto 0);
tabla_sal15 : out std_logic_vector(7 downto 0)
);

end Tabla;

architecture Behavioral of Tabla is
begin
process(entradaUA)
begin
case entradaUA is
when "00000" => --0
tabla_sal1  <= "00000000";
tabla_sal3  <= "00000000";
tabla_sal5  <= "00000000";
tabla_sal7  <= "00000000";
tabla_sal9  <= "00001110";
tabla_sal11 <= "00010101";
tabla_sal13 <= "00001110";
tabla_sal15 <= "00000000";

 

Figura6
Figura 5 - Representación del símbolo maya cero

Pantalla Inicial El LCD muestra por default el cero en los dos elementos (figura 5)

Figura6.1
Figura 6 - Inicio del LCD

El símbolo de suma, que al teclear “res”, “mul” y “div” cambia a -, * y / respectivamente (figuras 6 y 7).

 

Figura10 Figura9
Figuras 7 - Cambia el signo y su resultado

 

Figura11 Figura12
Figura 8 - Suma y multiplicación

 

Figura11 Figura15
Figura 9 - Suma y multiplicación

 

Figura14 Figura13
Figuras 10 - División con resultado cero y diferente de cero

 

Figura17
Figura 11 - Diseño esquemático del archivo principal del proyecto

 

El código principal VHL con la máquina de estados se encuentra en el siguiente enlace: https://www.dropbox.com/s/azfobni1pdwk02f/LCD.txt
Para ver el circuito en funcionamiento y la salida en el LCD, dirigirse a este enlace: http://youtu.be/gvpSkERvM84

Conclusiones

Se ampliaron conocimientos en el funcionamiento e implementación de máquinas de estados, así como su aplicación en problemas de aplicación antes de aplicarlo en el problema planteado. El software de Xilinx es robusto para este tipo de problemas y el simulador permite hacer pruebas antes de programar la tarjeta para prever los posibles errores de funcionamiento.

Bibliografía

1.- Pong P. Chu, FPGA Prototyping by VHDL Examples. Xilinx SpartanTM-3 Version, John Wiley & Sons, Inc., Publication, cap. 7, 8, 11, 2008.

2.- Spartan-3A/3AN. FPGA Starter Kit. Board User Guide. UG334 (v1.1) June 19, 2008. Consultada el 6 de julio de 2014.

3.- Sistema Vigesimal Maya.
http://www.feriadelasciencias.unam.mx/anteriores/feria20/feria143_01_sistema_vigesimal_maya.pdf

4.- Spartan-3A FPGA Family Data Sheet. Consultada el 3 de julio de 2014. http://www.xilinx.com/support/documentation/data_sheets/ds529.pdf