diff --git a/sys/scandoubler.v b/sys/scandoubler.v index f0728fc..e2b15c7 100644 --- a/sys/scandoubler.v +++ b/sys/scandoubler.v @@ -52,7 +52,7 @@ module scandoubler #(parameter LENGTH, parameter HALF_DEPTH) localparam DWIDTH = HALF_DEPTH ? 3 : 7; -assign vs_out = vs_in; +assign vs_out = vso[3]; assign ce_pix_out = ce_x4; //Compensate picture shift after HQ2x @@ -117,6 +117,7 @@ reg [DWIDTH:0] r_d; reg [DWIDTH:0] g_d; reg [DWIDTH:0] b_d; +reg [3:0] vso; always @(posedge clk_sys) begin @@ -143,6 +144,7 @@ always @(posedge clk_sys) begin // falling edge of hsync indicates start of line if(hs && !hs_in) begin + vso <= (vso<<1) | vs_in; hs_max <= {hcnt,1'b1}; hcnt <= 0; end else begin diff --git a/sys/sys_top.v b/sys/sys_top.v index 7b0b3ad..6281d97 100644 --- a/sys/sys_top.v +++ b/sys/sys_top.v @@ -718,7 +718,7 @@ vga_out vga_out `ifdef LITE .din(vga_q) `else - .din(vga_scaler ? HDMI_TX_D : vga_q) + .din(vga_scaler ? {24{HDMI_TX_DE}} & HDMI_TX_D : vga_q) `endif ); diff --git a/sys/video_mixer.sv b/sys/video_mixer.sv index 6babc3e..8f48f11 100644 --- a/sys/video_mixer.sv +++ b/sys/video_mixer.sv @@ -160,7 +160,7 @@ always @(posedge clk_sys) begin VGA_HS <= hs; old_hde <= hde; - if(~old_hde && hde && vde) VGA_DE <= 1; + if(~old_hde && hde) VGA_DE <= vde; if(old_hde && ~hde) VGA_DE <= 0; end