📄 frantic_42wvga_sdi_1_org.tdf
字号:
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 + -