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

📄 frantic_42wvga_sdi_1_org.tdf

📁 基于fpga的屏幕测试程序
💻 TDF
📖 第 1 页 / 共 4 页
字号:
			LPM_PIPELINE = 2
			);



start_h : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

end_h : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

start_v : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "NO",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

end_v : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

start_n : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

end_n : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

start_vn : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

end_vn : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);




v_counter : lpm_counter WITH (
			LPM_WIDTH = 11,
			LPM_DIRECTION = "UP"
			);


h_counter : lpm_counter WITH (
			LPM_WIDTH = 11,
			LPM_DIRECTION = "UP"
			);

act_counter : lpm_counter WITH (
			LPM_WIDTH = 11,
			LPM_DIRECTION = "UP"
			);

act_vcounter : lpm_counter WITH (
			LPM_WIDTH = 11,
			LPM_DIRECTION = "UP"
			);


%vstart : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "NO",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

vend : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "NO",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);
hstart : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "NO",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

hend : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "NO",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

%
vcentblock1 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

vcentblock2 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

hcentblock1 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

hcentblock2 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);



vpos1 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

vpos2 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);
vpos3 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

vpos5 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

vpos6 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);
vpos7 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);


hpos1 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

hpos2 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);
hpos3 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);


hpos5 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

hpos6 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);
hpos7 : lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);


colorbar_reset: lpm_compare WITH (
			LPM_WIDTH = 11,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

colorbar_counter: lpm_counter WITH (
			LPM_WIDTH = 11,
			LPM_DIRECTION = "UP"
			);

bar_counter: lpm_counter WITH (
			LPM_WIDTH = 3,
			LPM_DIRECTION = "UP"
			);



actpix_counter : lpm_counter WITH (
			LPM_WIDTH = 11,
			LPM_DIRECTION = "UP"
			);


cross_hatch_H_compare : lpm_compare WITH (
			LPM_WIDTH = 4,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

cross_hatch_V_compare : lpm_compare WITH (
			LPM_WIDTH = 3,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

cross_hatch_H_counter : lpm_counter WITH (
			LPM_WIDTH = 10,
			LPM_DIRECTION = "UP"
			);


cross_hatch_V_counter : lpm_counter WITH (
			LPM_WIDTH = 10,
			LPM_DIRECTION = "UP"
			);

diag_pl_counter : lpm_counter WITH (
			LPM_WIDTH = 4,
			LPM_DIRECTION = "UP"
			);

diag_pl_co_counter : lpm_counter WITH (
			LPM_WIDTH = 4,
			LPM_DIRECTION = "UP"
			);

diag_counter : lpm_counter WITH (
			LPM_WIDTH = 4,
			LPM_DIRECTION = "UP"
			);

diag_compare : lpm_compare WITH (
			LPM_WIDTH = 4,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);



%field_compare : lpm_compare WITH (
			LPM_WIDTH = 8,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

field_compare_out : lpm_compare WITH (
			LPM_WIDTH = 8,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);%
%field_counter : lpm_counter WITH (
			LPM_WIDTH = 14,
			LPM_DIRECTION = "UP"
			);%

prot_counter : lpm_counter WITH (
			LPM_WIDTH = 10,
			LPM_DIRECTION = "UP"
			);


cyclevalue : lpm_counter WITH (
			LPM_WIDTH = 8
			);

cyclevalue_compare_high : lpm_compare WITH (
			LPM_WIDTH = 8,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

cyclevalue_compare_low : lpm_compare WITH (
			LPM_WIDTH = 8,
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_REPRESENTATION = "UNSIGNED",
			LPM_PIPELINE = 2
			);

vsync_adder : lpm_add_sub WITH (
			LPM_WIDTH = 11,
			LPM_DIRECTION = "ADD",
			ONE_INPUT_IS_CONSTANT = "YES",
			LPM_PIPELINE = 0
			);

BEGIN

klok	= GLOBAL(clock);
----------------------------------------------------------------------------------
--High-Z section
----------------------------------------------------------------------------------
tristate[].oe = GND;
test[5..3] = tristate[5..3].out;
dummyz[5..3] = test[5..3];
tristate[5..3].in = GND;

tri_stateSDA.clk = klok;
tri_stateSCL.clk = klok;
tri_stateSDA.d = SDAo;
tri_stateSCL.d = SCLo;
----------------------------------------------------------------------------------
--Input section
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
--noise generator section
----------------------------------------------------------------------------------

----------------------------------------------------------------------------------
--Freerun section
----------------------------------------------------------------------------------

rampje.address[9..0] = actpix_counter.q[9..0];
rampje.inclock = klok;
rampje.outclock= klok;


--	q[10..0] = lpm_counter_component.q[10..0];
	actpix_counter.sclr = NOT nblank_display;
	actpix_counter.clock = klok;


	%--AeB = lpm_compare_component.AeB;
	vstart.dataa[10..0] = v_counter.q[10..0];
	vstart.datab[10..0] = startpointv[10..0];
	vstart.clock = klok;
	--AeB = lpm_compare_component.AeB;
	vend.dataa[10..0] = v_counter.q[10..0];
	vend.datab[10..0] = endpointv[10..0];
	vend.clock = klok;
	--AeB = lpm_compare_component.AeB;
	hstart.dataa[10..0] = actpix_counter.q[10..0];
	hstart.datab[10..0] = startpointh[10..0];
	hstart.clock = klok;
	--AeB = lpm_compare_component.AeB;
	hend.dataa[10..0] = actpix_counter.q[10..0];
	hend.datab[10..0] = endpointh[10..0];
	hend.clock = klok;
%

--CASE ((NOT(fullregbuf[7].q)),fullregbuf[3..0].q) IS
CASE video_mode[4..0] IS
WHEN 0 =>	% RGB ramps %
Red_art[9..2] = rampje.q[7..0] AND (ramp1.q OR ramp4.q);
Green_art[9..2] = rampje.q[7..0] AND (ramp2.q OR ramp4.q); 
Blue_art[9..2] = rampje.q[7..0] AND (ramp3.q OR ramp4.q); 
Red_art[1..0] = GND;
Green_art[1..0] = GND;
Blue_art[1..0] = GND;
WHEN 1 =>	% 9 block pattern %
Red_art[] 	= (vvid_act_blocks.q AND hvid_act_blocks.q AND Renab);
Green_art[] = (vvid_act_blocks.q AND hvid_act_blocks.q AND Genab);
Blue_art[] 	= (vvid_act_blocks.q AND hvid_act_blocks.q AND Benab);
WHEN 2 =>	% full screen %
Red_art[] 	= Renab;
Green_art[] = Genab;
Blue_art[] 	= Benab;
WHEN 3 =>	% centre block %
Red_art[] 	= (hcentblock.q AND vcentblock.q AND Renab);
Green_art[] = (hcentblock.q AND vcentblock.q AND Genab);
Blue_art[] 	= (hcentblock.q AND vcentblock.q AND Benab);
WHEN 4 =>	% black %
Red_art[] 	= GND;
Green_art[] = GND;
Blue_art[] 	= GND;
WHEN 5 =>	% variable load block %
Red_art[] 	= (hloadblock.q AND vloadblock.q AND RedValue[] AND Renab);
Green_art[] = (hloadblock.q AND vloadblock.q AND GreenValue[] AND Genab);
Blue_art[] 	= (hloadblock.q AND vloadblock.q AND BlueValue[] AND Benab);
WHEN 6 =>	% moving ramps %
Red_art[] 	= move_rampr[].q;
Green_art[] = move_rampg[].q;
Blue_art[] 	= move_rampb[].q;
WHEN 7 =>	% full screen grey scale %
Red_art[9..2] 	= rampje.q[7..0];
Green_art[9..2] = rampje.q[7..0];
Blue_art[9..2] 	= rampje.q[7..0];
Red_art[1..0] = GND;
Green_art[1..0] = GND;
Blue_art[1..0] = GND;
WHEN 8 =>	% cross hatch %
Red_art[] 	= cross.q;
Green_art[] = cross.q;
Blue_art[] 	= cross.q;
WHEN 9 =>	% TMF flashing screen is disabled%
Red_art[9..2] 	= rampje.q[7..0];
Green_art[9..2] = rampje.q[7..0];
Blue_art[9..2] 	= rampje.q[7..0];
Red_art[1..0] = GND;
Green_art[1..0] = GND;
Blue_art[1..0] = GND;
WHEN 10 =>	% colour bar %
Red_art[] 	= colourbar_r.q;
Green_art[] = colourbar_g.q;
Blue_art[] 	= colourbar_b.q;
WHEN 11 =>	% worst case adressing current %
Red_art[] 	= adressingR.q AND allow_adres_pattern.q;

⌨️ 快捷键说明

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