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

📄 serials_3l.tdf

📁 基于fpga的屏幕测试程序
💻 TDF
字号:
-- serials_3L.tdf-- for frame serials of 3 levels -- Chai Lin-- 2006-08-27include "fran_pg.inc";include "lpm_counter.inc";include "lpm_compare.inc";SUBDESIGN serials_3L(	clk					: INPUT;	clk_en				: INPUT;	reset				: INPUT;	time0[7..0]			: INPUT;	time1[7..0]			: INPUT;	time2[7..0]			: INPUT;	time3[7..0]			: INPUT;		red_in0[9..0]       : INPUT;	green_in0[9..0]     : INPUT;	blue_in0[9..0]      : INPUT;		red_in1[9..0]       : INPUT;	green_in1[9..0]     : INPUT;	blue_in1[9..0]      : INPUT;		red_in2[9..0]       : INPUT;	green_in2[9..0]     : INPUT;	blue_in2[9..0]      : INPUT;		red_out[9..0]      	: OUTPUT;	green_out[9..0]    	: OUTPUT;	blue_out[9..0]     	: OUTPUT;	trigger_out			: OUTPUT;)VARIABLE	counter0,	counter1,	counter2,	counter3			: lpm_counter WITH (						LPM_WIDTH = 8,						LPM_DIRECTION = "UP"						);		compare0,					    compare1,    compare2,    compare3    		: lpm_compare WITH (				                    LPM_WIDTH = 8,									ONE_INPUT_IS_CONSTANT = "YES",									LPM_REPRESENTATION = "UNSIGNED",									LPM_PIPELINE = 2									);										SS	:	MACHINE OF BITS (phase[3..0])			WITH STATES(						idle = B"0001",						s1   = B"0010",						s2   = B"0100",						s3   = B"1000"						);			Red_dff[9..0]	:	DFF;	Green_dff[9..0]	:	DFF;	Blue_dff[9..0]	:	DFF;	trigger_dffe	:	DFFE;	    RedValue[9..0]	: 	NODE;    GreValue[9..0]	: 	NODE;    BluValue[9..0] 	: 	NODE;	tri_flag		:	NODE;BEGIN	SS.clk = clk;	SS.ena = clk_en;	SS.reset = reset;		counter0.clock = clk;	counter1.clock = clk;	counter2.clock = clk;	counter3.clock = clk;		counter0.clk_en = clk_en;	counter1.clk_en = clk_en;	counter2.clk_en = clk_en;	counter3.clk_en = clk_en;	counter0.cnt_en = idle;	counter1.cnt_en = s1;	counter2.cnt_en = s2;	counter3.cnt_en = s3;		compare0.clock = clk;	compare1.clock = clk;	compare2.clock = clk;	compare3.clock = clk;		compare0.dataa[] = counter0.q[];	compare0.datab[] = time0[];	compare1.dataa[] = counter1.q[];	compare1.datab[] = time1[];	compare2.dataa[] = counter2.q[];	compare2.datab[] = time2[];	compare3.dataa[] = counter3.q[];	compare3.datab[] = time3[];	CASE SS IS	   WHEN idle =>			IF compare0.aeb THEN				counter0.sclr = VCC;				SS = s1;			 ELSE				SS = idle;				counter0.sclr = GND;			END IF;			   WHEN s1 =>			IF compare1.aeb THEN				counter1.sclr = VCC;				SS = s2;			 ELSE 				SS = s1;				counter1.sclr = GND;			END IF;	   	   WHEN s2 =>			IF compare2.aeb THEN				counter2.sclr = VCC;				SS = s3;			 ELSE 				SS = s2;				counter2.sclr = GND;			END IF;	   WHEN s3 =>			IF compare3.aeb THEN				counter3.sclr = VCC;				SS = s1;			 ELSE 				SS = s3;				counter3.sclr = GND;			END IF;	   	   WHEN OTHERS =>			SS = idle;    END CASE;   CASE SS IS	   WHEN   idle   =>		RedValue[9..0] = 0;		GreValue[9..0] = 0;		BluValue[9..0] = 0;		tri_flag 	   = GND;  	   WHEN   s1   =>		RedValue[9..0] = red_in0[9..0];		GreValue[9..0] = green_in0[9..0];		BluValue[9..0] = blue_in0[9..0]; 	    tri_flag 	   = VCC;	   WHEN   s2   =>		RedValue[9..0] = red_in1[9..0];		GreValue[9..0] = green_in1[9..0];		BluValue[9..0] = blue_in1[9..0];		tri_flag       = GND; 	   WHEN   s3   =>		RedValue[9..0] = red_in2[9..0];		GreValue[9..0] = green_in2[9..0];		BluValue[9..0] = blue_in2[9..0];		tri_flag       = GND;	   WHEN OTHERS => 		RedValue[9..0] = 0;		GreValue[9..0] = 0;		BluValue[9..0] = 0;		tri_flag       = GND;      END CASE;	Red_dff[].clk   = clk;	Green_dff[].clk = clk;	Blue_dff[].clk  = clk;		Red_dff[].d   	= RedValue[];	Green_dff[].d 	= GreValue[];	Blue_dff[].d  	= BluValue[];		Red_out[]		= Red_dff[].q;	Green_out[]		= Green_dff[].q;	Blue_out[]		= Blue_dff[].q;		trigger_dffe.clk	= clk;	trigger_dffe.ena	= clk_en;	trigger_dffe.d		= tri_flag;	trigger_out			= trigger_dffe.q ; END;

⌨️ 快捷键说明

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