PoC.io.vga.phy_ch7301c

The clock frequency must be the same as used for the timing module, e.g., 25 MHZ for VGA 640x480. A phase-shifted clock must be provided: - clk0 : 0 degrees - clk90 : 90 degrees

pixel_data(23 downto 16) : red pixel_data(15 downto 8) : green pixel_data( 7 downto 0) : blue

The reset_b-pin must be driven by other logic (such as the reset button).

The IIC_interface is not part of this modules, as an IIC-master controls several slaves. The following registers must be set, see tests/ml505/vga_test_ml505.vhdl for an example.

Register Value Description
0x49 PM 0xC0 0xD0 Enable DVI, RGB bypass off Enable DVI, RGB bypass on
0x33 TPCP 0x08 if clk_freq <= 65 MHz else 0x06  
0x34 TPD 0x16 if clk_freq <= 65 MHz else 0x26  
0x36 TPF 0x60 if clk_freq <= 65 MHz else 0xA0  
0x1F IDF 0x80 0x90 when using SMT (VS0, HS0) when using CVT (VS1, HS0)
0x21 DC 0x09 Enable DAC if RGB bypass is on

Entity Declaration:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
entity vga_phy_ch7301c is
  port (
    clk0        : in  std_logic;
    clk90       : in  std_logic;
    phy_ctrl    : in  T_IO_VGA_PHY_CTRL;
    pixel_data  : in  std_logic_vector(23 downto 0);
    dvi_xclk_p  : out std_logic;
    dvi_xclk_n  : out std_logic;
    dvi_h       : out std_logic;
    dvi_v       : out std_logic;
    dvi_de      : out std_logic;
    dvi_d       : out std_logic_vector(11 downto 0)
  );
end entity;