⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sincronismo.vhd

📁 用VHDL实现视频控制程序,实现对图像的采集和压缩,
💻 VHD
字号:
-----------------------------------------
---- Proceso de sincronismo de pantalla
-----------------------------------------

LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
USE IEEE.std_logic_arith.all;
USE IEEE.std_logic_unsigned.all;

ENTITY sincronismo_pantalla is
	PORT(
	      href: IN std_logic;	
              resetz:IN std_logic;
	      clk: IN std_logic;
	      configuracion_ok: IN std_logic;
	      ODD: IN std_logic;
              llc: IN std_logic;
	      habilit_adapt:OUT std_logic
	    );
END ENTITY sincronismo_pantalla;

ARCHITECTURE comportamiento OF sincronismo_pantalla IS
TYPE estado IS (reposo, sinc1, sinc2,preparado_capturar,espera_llc);
SIGNAL actual, futuro: estado;
SIGNAL p_habilitador:std_logic;
	
BEGIN

--Proceso de sincronismo

sinc: process (resetz, clk)
  BEGIN
	if(resetz='0') then   -- Reset a nivel bajo
	   actual <= reposo;
	   habilit_adapt<='0';
	elsif(clk'event and clk = '1')then
	   actual <= futuro;
	   habilit_adapt<=p_habilitador;
	end if;
END process sinc;


p1: PROCESS(actual,configuracion_ok,llc,href, ODD)
BEGIN
    CASE actual IS
	WHEN reposo =>
   	   p_habilitador<='0';
   	   if(configuracion_ok='1')then       --Espera a que este bien configurado
	     futuro <= sinc1;
 	   else
	     futuro <= reposo;
           end if;
	WHEN sinc1 =>
   	   p_habilitador<='0';
	   if(ODD = '0')then                  --ODD=0 marca la mitad de la pantalla
	     futuro <= sinc2;
 	   else
	     futuro <= sinc1;
           end if;
	WHEN sinc2 =>
   	   p_habilitador<='0';
   	   if(ODD = '1')then                  --ODD=1 marca el inicio de la pantalla
	     futuro <= preparado_capturar;    
	   else
	     futuro <= sinc2;
           end if;
         WHEN preparado_capturar=>
                if(href='1' and llc='1')then  --Estos dos estados generan un pulso
                   futuro<=espera_llc;        --con cada flanco de llc q pertenezca
		   p_habilitador<='1';        --a la linea.

                else
                   futuro<=preparado_capturar;
                   p_habilitador<='0';
                end if;
         WHEN espera_llc=>
                p_habilitador<='0';
         	if(llc='0')then
         	   futuro<=preparado_capturar;
         	else
         	   futuro<=espera_llc;
         	end if;
         	   
       end case;
    end PROCESS p1;

end architecture comportamiento;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -