Кстати, обманул. Срезается 32 cкан-строки, это 64 строки VGA.
В исходнике в комментах опечатка про 44, а константа в коде именно 64 (0001000000b).
Но это в 1.0.x. поэтому и не важно.
В 2.0.x все еще интереснее, там 4 режима (задаются значением H_TYPE через джамперы 5 и 6) и моменты формирования синхро- и гасящих импульсов там разные.
Думаю, что надо выяснить, какой режим выставлен и попробовать в нем значением начала первого строчного гасящего импульса поиграть (VGA_SGI1_END), чтоб первый столбец не срезался (см. код ниже).
Скрытый текст
Код:-------------------------------------------------------------------------------- -- ФОРМИРОВАНИЕ ПАРАМЕТРОВ РАЗВЕРТКИ VGA 100304 -- -------------------------------------------------------------------------------- -- строчные синхроимпульсы для VGA: process (H_TYPE) begin case H_TYPE is when "10" => -- "Спектрум" -- строчная развертка VGA: VGA_SSI1_BGN <= "0000000000"; -- 0 - начало 1 строчного СИ VGA_SSI1_END <= "0000100110"; -- 38 - конец 1 строчного СИ VGA_SSI2_BGN <= "1101110010"; -- 882 - начало 2 строчного СИ VGA_SSI2_END <= "1101111111"; -- 895 - конец 2 строчного СИ VGA_SGI1_END <= "0001000001"; -- 65 - конец 1 строчного ГИ VGA_SGI2_BGN <= "1101110010"; -- 882 - начало 2 строчного ГИ when "01" => -- "Профи" VGA_SSI1_BGN <= "0000000000"; -- 0 - начало 1 строчного СИ VGA_SSI1_END <= "0000100010"; -- 34 - конец 1 строчного СИ VGA_SSI2_BGN <= "1011110101"; -- 757 - начало 2 строчного СИ VGA_SSI2_END <= "1011111111"; -- 767 - конец 2 строчного СИ VGA_SGI1_END <= "0000111001"; -- 57 - конец 1 строчного ГИ VGA_SGI2_BGN <= "1011101101"; -- 749 - начало 2 строчного ГИ when "00" => -- "Орион" VGA_SSI1_BGN <= "0000000000"; -- 0 - начало 1 строчного СИ VGA_SSI1_END <= "0000100101"; -- 37 - конец 1 строчного СИ VGA_SSI2_BGN <= "0000000000"; -- 0 - начало 2 строчного СИ VGA_SSI2_END <= "0000100101"; -- 37 - конец 2 строчного СИ VGA_SGI1_END <= "0000111000"; -- 56 - конец 1 строчного ГИ VGA_SGI2_BGN <= "1001111010"; -- 634 - начало 2 строчного ГИ when "11" => -- "Специалист" VGA_SSI1_BGN <= "0000000000"; -- 0 - начало 1 строчного СИ VGA_SSI1_END <= "0000010001"; -- 17 - конец 1 строчного СИ VGA_SSI2_BGN <= "0111110011"; -- 499 - начало 2 строчного СИ VGA_SSI2_END <= "0111111111"; -- 511 - конец 2 строчного СИ VGA_SGI1_END <= "0000100000"; -- 32 - конец 1 строчного ГИ VGA_SGI2_BGN <= "0111101110"; -- 494 - начало 2 строчного ГИ end case; end process; -------------------------------------------------------------------------------- -- кадровая развертка VGA: -- чтобы не было смещения экрана вниз при частоте VGA 60 Гц -- пропускаются 32 строки экрана Спектрума сверху экрана, -- что соответствует 64 строкам VGA. process (SET_FK_OUT) begin case SET_FK_OUT is when '0' => -- для частоты кадров 48/50 Гц: VGA_KSI_BGN <= "0000001011"; -- 11 - начало кадрового СИ VGA_KSI_END <= "0000001100"; -- 12 - конец кадрового СИ VGA_KGI1_END <= "0000101100"; -- 44 - конец кадрового ГИ VGA_KGI2_BGN <= "1001110001"; -- 625 - начало кадрового ГИ when '1' => -- для частоты кадров 60 Гц: VGA_KSI_BGN <= "0000111011"; -- 59 - начало кадрового СИ VGA_KSI_END <= "0000111100"; -- 60 - конец кадрового СИ VGA_KGI1_END <= "0001011100"; -- 92 - конец кадрового ГИ VGA_KGI2_BGN <= "1000111110"; -- 574 - начало кадрового ГИ end case; end process;[свернуть]





Ответить с цитированием