hola pic mouse.
gracias por molestarte en contestar. me gustaria saber si podrias ayudarme diciendome si hace algo el siguiente codigo tengo que hacer un programa y es forzoso que sea en vhdl yo ni siquiera sabia que era eso hace unas dos semanas y media XD pero en fin tuve que leer un monton y he llegado a realizar el siguiente programa que supuestamente me ayudaria a controloar una pantalla a color. solo me gustaria saber si hace algo o que me recomiendas gracias aki te dejo el codigo que realize.
library ieee;
use ieee.std_logic_1164.all;
entity prueba is
port(
maestro1 : out std_logic;
maestro : in std_logic;
datos : in std_logic_vector(7 downto 0);
saltoh : out std_logic;
d1 : out std_logic;
d2 : out std_logic;
d3 : out std_logic;
d4 : out std_logic;
d5 : out std_logic;
d6 : out std_logic;
d7 : out std_logic;
d0 : out std_logic;
saltov : out std_logic);
end prueba;
architecture comportamiento of prueba is
signal cont4 : std_logic_vector(1 downto 0);
signal contv : std_logic_vector(10 downto 0);
signal conth : std_logic_vector(10 downto 0);
signal hb : std_logic_vector(10 downto 0);
signal habilitador : std_logic;
signal set : std_logic;
signal qb : std_logic;
signal permiso : std_logic;
signal refresh : std_logic;
signal reset : std_logic;
signal sal : std_logic;
signal menor : std_logic;
signal mayorsin : std_logic;
signal menorsin : std_logic;
signal mayor : std_logic;
component comparador
port(
dataa : IN STD_LOGIC_VECTOR (10 DOWNTO 0);
datab : IN STD_LOGIC_VECTOR (10 DOWNTO 0);
AgB : OUT STD_LOGIC ;
AlB : OUT STD_LOGIC
);
end component;
component contador
port(
clock : IN STD_LOGIC ;
sclr : IN STD_LOGIC ;
q : OUT STD_LOGIC_VECTOR (10 DOWNTO 0)
);
end component;
component contador1
port(
clk_en : IN STD_LOGIC ;
clock : IN STD_LOGIC ;
sclr : IN STD_LOGIC ;
q : OUT STD_LOGIC_VECTOR (1 DOWNTO 0)
);
end component;
begin
etapa1: contador port map(maestro,reset,hb);
comparacion : comparador port map(hb,"00011110000",mayorsin,menor);
comparacion2 : comparador port map(hb,"11010010000",mayor,menorsin);
etapa2 : contador1 port map (habilitador,maestro,sal,cont4);
etapa3 : contador port map (sal,reset,conth);
conteov : contador port map(reset,refresh,contv);
process(cont4,conth,contv,hb,habilitador,sal,refresh,qb,reset,set,menor,mayor)
begin
if hb = "00011110000" then--primer contador que llega a 240
set<='1';--mandamos la señal a un flip flop para sostenerla
habilitador<= reset nor qb;--habilitador del siguiente contador que es el de 4
qb<= set nor habilitador;--necesario para crear el flip flop
else
set<='0';--set es 0 y o se activa el siguiente contador
end if;
if cont4="100" then--cuando se habilita empieza a contar hasta el 4
sal<='1';--si llega a 4 la salida es uno sirve para resetearse
else
sal<='0';--no pasa nada
end if;
if conth="00101110001" then--checa cuando este en 369
reset<='1';--manda reset a contadores
else
reset<='0';
end if;
if contv="00011110000" then--espera 240
refresh<='1';--si se cumplen se reinicia el proceso
else
refresh<='0';
end if;
if menor='1'then--checa el primer contador si es menor a 240
permiso<='0';
elsif mayor='1' then--checa el primer contador si es mayor a 1680
permiso<='0';
else
permiso<='1';--si esta entre esos rangos se activa el permiso
end if;
d0<=permiso and datos(0);--dato 0 controlado por comparador
d1<=permiso and datos(1);--dato 1 controlado por comparador
d2<=permiso and datos(2);--dato 2 controlado por comparador
d3<=permiso and datos(3);--dato 3 controlado por comparador
d4<=permiso and datos(4);--dato 4 controlado por comparador
d5<=permiso and datos(5);--dato 5 controlado por comparador
d6<=permiso and datos(6);--dato 6 controlado por comparador
d7<=permiso and datos(7);--dato 7 controlado por comparador
saltoh<=reset;--señal horizontal
saltov<=refresh;--señal vertical
maestro1<=maestro;
end process;
end comportamiento;
no me marca errores en la compilacion solo no hace nada estoy trabajando en quartus con un cyclone2 gracias alguna duda del codigo y te explico qe es lo que queria hacer.
gracias!
