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

📄 maqled.vhd

📁 Image_Filter_An_Image_halftone is performed over data loaded into the on board RAM and presented on
💻 VHD
字号:
-- Maquina de estados que representa en el led de 7 segmentos
-- el tama駉 de la mascara usada en el proceso. 
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity maqled is	
    port (
	guardada: in STD_LOGIC;		-- Indica que se termino de 
					-- guardar la imagen original
					-- por parte del bloque 'topcom'
        --finproceso: in STD_LOGIC; 	-- Indica que se termino de 
					-- insertar la nueva imagen

        clk: in STD_LOGIC;
        GReset: in STD_LOGIC;
	TamMasc: in STD_LOGIC_VECTOR (1 downto 0);  -- tipo de proceso
        Segmento: out STD_LOGIC_VECTOR (6 downto 0) -- Lineas hacia el
						    -- led de 7 segmentos 
    );
end maqled;

architecture maqled_arch of maqled is
type estado is (reposo, queorden,procesbin, proceshalf);
signal est_actual, est_sig: estado;
begin
ledcomb: process (est_actual,TamMasc,guardada)
begin
case est_actual is
	when reposo=>
 		segmento <="1110111"; 	-- En reposo se representa un 0
 		if (guardada='1') then
 			est_sig<=queorden;
 		elsif (tammasc="01") then	-- Si pide binarizaci髇, 
 						-- habiendo realizado ya 
 						-- otro procesamiento antes
		 	est_sig<=procesbin;
		elsif (tammasc="10") then 	-- Si pide halftonning, 
						-- habiendo realizadao ya 
						-- otro procesamiento antes
			est_sig<=proceshalf;
 		else
 			est_sig<=reposo;
 		end if;
 	when queorden=>
 		segmento <="1101101";	-- Representa la letra 'E' para
 					-- indicar que Espera una orden
		if (tammasc="00") then		-- Si aun no pide nada
			est_sig<=queorden;
		elsif (tammasc="01") then	-- Si la primera vez
						-- pide binarizaci髇
		 	est_sig<=procesbin;
		elsif (tammasc="10") then 	-- Si primera vez
						-- pide halftonning
			est_sig<=proceshalf;
		else
			est_sig<=queorden;	-- Si la orden no se ha 
						-- dado bien, seguimos
						-- esperando
		end if;
	when procesbin=>
		segmento<="0010010";		-- Masc. de 1x1, y se 
						-- pone '1' en el led
		if (guardada='1') then
			est_sig<=queorden;	-- Espera otro proceso
		elsif (tammasc="10") then
			est_sig<=proceshalf;
		else
			est_sig<=procesbin;
		end if;
	when proceshalf=>
		segmento<="1011101";		-- Masc. de 2x2, y se 
						-- pone '2' en el led
		if (guardada='1') then
			est_sig<=queorden;	-- Espera otro proceso
		elsif (tammasc="01") then
			est_sig<=procesbin;
		else
			est_sig<=proceshalf;
		end if;
		
end case;
end process ledcomb;
ledsec: process(clk,GReset)
begin
	if (GReset='1') then
		est_actual<=reposo;
	elsif (clk'event and clk='1') then
		est_actual<=est_sig;
	end if;
end process ledsec;	

end maqled_arch;

⌨️ 快捷键说明

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