Skip to content

sys - video_mixer

Video Mixer is used as a helper to provide a lot of the nice videos that the MiSTer framework supplies. This includes scandoubling, gamma, hq2x scaling, and freezing.

Instantiating video_mixer

The module has a few parameters that are used to set it up.

  • LINE_LENGTH
  • HALF_DEPTH
  • GAMMA
module video_mixer
#(
    parameter LINE_LENGTH  = 768,
    parameter HALF_DEPTH   = 0,
    parameter GAMMA        = 0
)
(
    input            CLK_VIDEO, // should be multiple by (ce_pix*4)
    output reg       CE_PIXEL,  // output pixel clock enable

    input            ce_pix,    // input pixel clock or clock_enable

    input            scandoubler,
    input            hq2x,      // high quality 2x scaling

    inout     [21:0] gamma_bus,

    // color
    input [DWIDTH:0] R,
    input [DWIDTH:0] G,
    input [DWIDTH:0] B,

    // Positive pulses.
    input            HSync,
    input            VSync,
    input            HBlank,
    input            VBlank,

    // Freeze engine
    // HDMI: displays last frame 
    // VGA:  black screen with HSync and VSync
    input            HDMI_FREEZE,
    output           freeze_sync,

    // video output signals
    output reg [7:0] VGA_R,
    output reg [7:0] VGA_G,
    output reg [7:0] VGA_B,
    output reg       VGA_VS,
    output reg       VGA_HS,
    output reg       VGA_DE
);