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

📄 saa7111_2.vhd

📁 使用Altera芯片实现对4个SAA7111A视频A/D芯片的采集控制
💻 VHD
字号:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE	IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
LIBRARY lpm;
USE lpm.lpm_components.all;

Entity	SAA7111 IS
PORT(
		--SIGNAL DEOM SAA7111
		LLC  	: IN  STD_LOGIC;
		FIELD	: IN  STD_LOGIC;
		HS		: IN  STD_LOGIC;
		VREF	: IN  STD_LOGIC;

		--CONTROL FROM 6204
		RESET	: IN  STD_LOGIC;
		DR1		: OUT STD_LOGIC;
		DX1		: IN  STD_LOGIC;
		--SIGNAL FOR 51 USRT
		TXD		: IN  STD_LOGIC;
		RXD		: OUT STD_LOGIC;

		--SIGNAL TO AL422		
		WCK		: OUT STD_LOGIC;
		WE		: OUT STD_LOGIC;		
		WRST	: OUT STD_LOGIC;
		RRST	: OUT STD_LOGIC;
		--SIGNAL TO 6204 INDICATE THE WHOLE IMAGE CAPTURE OK
		OK		: OUT STD_LOGIC;
		W_RST	: IN  STD_LOGIC;
		RST_51	: IN  STD_LOGIC;		
		RST_DSP	: OUT STD_LOGIC

				
);
END SAA7111;
ARCHITECTURE	A OF SAA7111 IS
SIGNAL 	FIELD_CNT	:INTEGER RANGE 0 TO 4;
SIGNAL	FIELD_CNT1 : INTEGER RANGE 0 TO 4;
SIGNAL  DATA_OK		: STD_LOGIC;	
SIGNAL  DATA_OK1	: STD_LOGIC;	
SIGNAL  VREF_LLC	: STD_LOGIC;
SIGNAL	HS1			: STD_LOGIC;

BEGIN
	
--WCLK <= LLC2;
WRST <= W_RST;
RRST <= RESET;
OK <= DATA_OK;
DR1 <= TXD;
RXD <= DX1;
RST_DSP <= RST_51;
--WCK <= TIME;
WCK <= LLC;
					
		PROCESS(RESET, VREF_LLC)			
		BEGIN
			IF(RESET = '0') THEN
				FIELD_CNT <= 0;
			ELSE	
				IF(VREF_LLC 'EVENT AND VREF_LLC = '0') THEN	 --BEGIN NEW FIELD																										
					IF(FIELD = '0' AND DATA_OK1 = '1' )THEN		--NEW FIELD IS ODD
				    	FIELD_CNT <= FIELD_CNT + 1;
					ELSIF(FIELD = '1'  AND DATA_OK1  = '1' AND FIELD_CNT > 0) THEN FIELD_CNT <= FIELD_CNT + 1;
					ELSIF(FIELD_CNT = 2 AND DATA_OK1  = '1') THEN FIELD_CNT <=  FIELD_CNT + 1;
					END IF;							
				END IF;					
			END IF;			
		END PROCESS;		
		PROCESS(RESET, LLC, FIELD_CNT1, HS)
		BEGIN	
			IF(RESET = '0') THEN
				FIELD_CNT1 <= 0;
				HS1 <= '1';
				VREF_LLC <= '1';	
				DATA_OK1 <= '1';
				WE <= '1';
			ELSIF(LLC'EVENT AND LLC = '1') THEN
				FIELD_CNT1 <= FIELD_CNT;
				HS1 <= HS;
				VREF_LLC <= VREF;
				DATA_OK1 <= DATA_OK;
			    IF(FIELD_CNT1 = 1 OR FIELD_CNT1 = 2 ) THEN
					IF(VREF = '1') THEN
						WE <= HS1;
					END IF;
				ELSE WE <= '1';
				END IF;

			END IF;
		END PROCESS;

		PROCESS(RESET, VREF_LLC, FIELD_CNT1)
		BEGIN
			IF(RESET = '0') THEN
				DATA_OK <= '1';
			ELSIF(VREF_LLC 'EVENT AND VREF_LLC = '0') THEN
				IF(FIELD_CNT1 = 2 ) THEN
					DATA_OK <= '0';
				END IF;
			END IF;
		END PROCESS;
END A;						
						
				
				
			

⌨️ 快捷键说明

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