Documente Academic
Documente Profesional
Documente Cultură
Código: 12190016
INFORME FINA # 4
SECUENCIA DE PALABRAS
I. OBJETIVO
Utilizar el estilo estructural para describir el comportamiento de un circuito.
II. MATERIALES Y EQUIPOS
Placa modulo con FPGA Altera Cyclone I
PC con la herramienta de síntesis MAX Plus II y el entorno de desarrollo
Quartus II de Altera
Para lograr que se visualice un mensaje en la matriz hay que lograr una perfecta
sincronización entre las filas y columnas, de esta forma se logra encender un
punto de la matriz, y combinando de una manera adecuada, con un multiplexado
adecuado, se lograra visualizar diferentes caracteres en la matriz.
El control de Direcciones: Este circuito nos provea de una cadena de 7 bits que
tendrá la dirección para acceder a los datos de la memoria, además de proveer la
direcciones lo hará de tal forma desplazándose por la memoria y apuntando a los
datos que se requieran para formar las palabras y su respectivo desplazamiento,
1
DISEÑO DIGITAL 17-5-2016
2
DISEÑO DIGITAL 17-5-2016
36 00000000 00
37 11011111 DF
38 11101111 EF
39 11110111 F7
40 11111011 FB
41 00000000 00
42 11111111 FF
43 00000000 00
44 11011111 DF
45 11101111 EF
46 11011111 DF
47 00000000 00
48 11111111 FF
49 10011101 9D
50 01101110 6E
51 01101110 6E
52 01110110 76
53 10111001 B9
54 11111111 FF
55 00000000 00
56 11011111 DF
57 11101111 EF
58 11011111 DF
59 00000000 00
60 11111111 FF
61 11111111 FF
62 11111111 FF
63 11000011 C3
64 10000001 81
65 00000000 00
66 00000000 00
67 00011000 19
68 10111101 BD
69 11011011 DB
70 11111111 FF
71 11111111 FF
72 11111111 FF
73 11111111 FF
74 11111111 FF
75 11111111 FF
76 11111111 FF
77 11111111 FF
3
DISEÑO DIGITAL 17-5-2016
Una vez hecho el análisis se propone el siguiente diagrama de bloques del circuito
a implementar:
COMPONENTE PRINCIPAL
LIBRARY IEEE;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY SCROLL_UNMSM IS
END SCROLL_UNMSM;
SIGNAL X :STD_LOGIC;
SIGNAL ACCESO:STD_LOGIC_VECTOR(6 DOWNTO 0);
COMPONENT CONTROL_DIR
PORT(CLK:IN STD_LOGIC;
DIR:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END COMPONENT;
COMPONENT MULTI_MATRIZ
PORT(CLK:IN STD_LOGIC;
MULTIPLEXADO8:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END COMPONENT;
4
DISEÑO DIGITAL 17-5-2016
COMPONENT DIVISOR
PORT ( CLK: IN STD_LOGIC;
CLKOUT: OUT STD_LOGIC);
END COMPONENT;
COMPONENT MEM_UNMSM
PORT(DIREC:IN STD_LOGIC_VECTOR(6 DOWNTO 0);
DATO:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END COMPONENT;
BEGIN
DIVISOR:::::::::::::::.
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.std_logic_arith.all;
Use ieee.std_logic_unsigned.all;
Entity DIVISOR is
Port ( clk: in std_logic;
clkout: out std_logic);
end DIVISOR;
Process(clk)
Begin
if clk='1' and clk'event then
contador<=contador+1;
if contador=60000 then
end if;
end if;
5
DISEÑO DIGITAL 17-5-2016
end Process;
clkout<=clk_out;
end solucion;
MULTI_MATRIZ
Library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity multi_matriz is
port(CLK:in std_logic;
MULTIPLEXADO8:out std_logic_vector(7 downto 0));
end multi_matriz;
begin
process(CLK)
begin
if CLK='1' and CLK'event then
contador<=contador+1;
end if;
end process;
CONTROL DIRECCION
library ieee;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
6
DISEÑO DIGITAL 17-5-2016
entity control_dir is
port(CLK:in std_logic;
dir:out std_logic_vector(6 downto 0));
end control_dir;
begin
process(CLK)
begin
if CLK='1' and CLK'event then
conteo8<=conteo8+1;
if conteo8=7 then
conteo8<="0000000";
repeticion<=repeticion+1;
if repeticion=9 then
repeticion<="00000";
recorrido<=recorrido+1;
if recorrido=70 then
recorrido<="0000000";
end if;
end if;
end if;
end if;
dir<=conteo8+recorrido;
end process;
end solucion;
MEMORIA:::::::::::
library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity mem_UNMSM is
port(DIREC:in std_logic_vector(6 downto 0);
DATO:out std_logic_vector(7 downto 0));
end mem_UNMSM ;
7
DISEÑO DIGITAL 17-5-2016
X"6F",X"6F",X"FF",X"7E",X"00",X"7E",X"FF",X"00",X"6E",X"6E",
X"6E",X"FF",X"00",X"6E",X"6E",X"6E",X"FF",X"E7",X"E7",X"E7",
X"FF",X"00",X"FE",X"FE",X"00",X"FF",X"00",X"DF",X"EF",X"F7",
X"FB",X"00",X"FF",X"00",X"DF",X"EF",X"DF",X"00",X"FF",X"9D",
X"6E",X"6E",X"76",X"B9",X"FF",X"00",X"DF",X"EF",X"DF",X"00",
X"FF",X"FF",X"FF",X"C3",X"81",X"00",X"00",X"19",X"BD",X"DB",
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF");
begin
DATO<=ROM(conv_integer(DIREC));
end solucion;