Вы находитесь на странице: 1из 9

Instituto Tecnolgico de Mazatln

Departamento de Ingeniera Elctrica


Electrnica

INGENIERA ELECTRONICA
IELC-2010-211

DISEO DIGITAL CON VHDL


ETF-1015
M. I. Jos Manuel Pastrano Balderas
Docente

REPORTE 10 UNIDAD 3
Generador de caracteres ASCII.

Prez Sandoval Jess Daniel


Valdez Celis Adrian Enrique
Nombre de los alumnos

141000130
141000155
Nmeros de control
Mazatln, Sin., Noviembre de 2017
Introduccin:

El cdigo ASCII es un cdigo de caracteres basado en el alfabeto latino, tal como


se usa en ingls moderno.

El cdigo ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente
empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la
transmisin.

El cdigo ASCII reserva los primeros 32 cdigos (numerados del 0 al 31 en


decimal) para caracteres de control: cdigos no pensados originalmente para
representar informacin imprimible, sino para controlar dispositivos
(como impresoras) que usaban ASCII.

Desarrollo:

Se tiene la instruccin de la practica que se debe de generar caracteres ASCII en


la FPGA. Para poder hacer esto se debe de conocer sobre el mtodo de
instanciar.

2
Se tiene que declarar la entidad en el proyecto instanciador que ser donde se
junten todos los programas externos.

Los componentes ms importantes del programa son el generador de pulsos, el


contador, el decodificador y lo ms importante una memoria ROM.

3
Al tener todos los programas separados se juntan en el proyecto instanciador y se
acomodan, al momento de tener acomodado todo se pasa a la creacin de
nuestro archivo UCF del proyecto para declarar los pines de entrada y salida.

4
5
Para elegir que caracteres generar se tiene que agregar los datos en la memoria
ROM de manera Hexadecimal para dar las seales a las filas y lneas de la matriz
de leds. En este caso son 21 los caracteres que estn programados en nuestra
memoria ROM son:

P-R-A-C-T-I-C-A N-U-M-E-R-O 10 D-E V-H-D-L

Cdigo de la memoria ROM

library IEEE;

use IEEE.NUMERIC_STD.ALL;

use IEEE.STD_LOGIC_1164.ALL;

entity ROM is

Generic (data_width : natural := 8;

addr_length : natural := 10);

port ( Address : in std_logic_vector(addr_length-1 downto 0);


6
data_out : out std_logic_vector(data_width-1 downto 0));

end ROM;

architecture Behavioral of ROM is

constant mem_size : natural :=2**addr_length;

type mem_type is array (mem_size-1 downto 0) of std_logic_vector (data_width-1


downto 0);

constant mem: mem_type:= (

0=> X"ff", 1=> X"90", 2=> X"90", 3=> X"90", 4=> X"f0",------------------------P

8=> X"ff", 9=> X"90", 10=> X"98", 11=> X"94", 12=> X"f2",-------------------R

16=> X"3f", 17=> X"50", 18=> X"90", 19=> X"50", 20=> X"3f",---------------A

24=> X"38", 25=> X"44", 26=> X"82", 27=> X"82",28=> X"82", -------------C

32=> X"80", 33=> X"80", 34=> X"FF", 35=> X"80",36=> X"80", -------------T

40=> X"82", 41=> X"82", 42=> X"FF", 43=> X"82",44=> X"82", -------------I

48=> X"38", 49=> X"44", 50=> X"82", 51=> X"82",52=> X"82",--------------C

56=> X"3F", 57=> X"50", 58=> X"90", 59=> X"50",60=> X"3f",---------------A

64=> X"FF", 65=> X"20", 66=> X"10", 67=> X"08",68=> X"FF",-------------N

72=> X"FF", 73=> X"02", 74=> X"02", 75=> X"02",76=> X"FF",-------------U

80=> X"FF", 81=> X"20", 82=> X"10", 83=> X"20",84=> X"FF",-------------M

88=> X"FF", 89=> X"92", 90=> X"92", 91=> X"92", 92=> X"92",-------------E

96=> X"FF", 97=> X"90", 98=> X"98", 99=> X"94",100=> X"F2",------------R

104=> X"FF", 105=> X"82", 106=> X"82", 107=> X"82", 108=> X"FF",----O

112=> X"00", 113=> X"BE", 114=> X"DE", 115=> X"EE",116=> X"00",---10

7
120=> X"FF", 121=> X"82", 122=> X"82", 123=> X"44",124=> X"38",-----D

128=> X"FF", 129=> X"92", 130=> X"92", 131=> X"92",132=> X"92",-----E

136=> X"F8", 137=> X"04", 138=> X"02", 139=> X"04",140=> X"F8",---V

144=> X"FF", 145=> X"10", 146=> X"10", 147=> X"10",148=> X"FF",---H

152=> X"FF", 153=> X"82", 154=> X"82", 155=> X"44",156=> X"38",---D

160=> X"FF", 161=> X"02", 162=> X"02", 163=> X"02",164=> X"02",---L

others=> X"00" );

attribute rom_style : string;

attribute rom_style of data_out : signal is "block";

begin

data_out <= mem(to_integer(unsigned(Address)));

end Behavioral;

8
Conclusin.

Esta prctica necesita de un requerimiento de conocimientos sobre instanciacin,


construccin de bloques bsicos como contadores, divisores de frecuencia y
decodificadores, as como la descripcin de un nuevo tipo de bloque, la memoria
ROM.

Se debe de tener cuidado al realizar la prueba fsica de la prctica porque si no se


toman las recomendaciones de proteccin que son colocar BUFFERS entre la
salida de la FPGA y la matriz de leds para progegerla.

Вам также может понравиться