Revision 983
Added by markw over 5 years ago
| eclaireXL_ITX/hdmi/scandoubler_hdmi.vhdl | ||
|---|---|---|
|
O_TMDS_L : OUT STD_LOGIC_VECTOR(7 downto 0);
|
||
|
|
||
|
-- I2C params
|
||
|
scl : inout std_logic;
|
||
|
sda : inout std_logic
|
||
|
scl_in : in std_logic;
|
||
|
sda_in : in std_logic;
|
||
|
scl_wen : out std_logic;
|
||
|
sda_wen : out std_logic
|
||
|
);
|
||
|
END scandoubler_hdmi;
|
||
|
|
||
| ... | ... | |
|
signal shift_b_next : std_logic_vector(9 downto 0) := "0000000000";
|
||
|
signal shift_clk_next : std_logic_vector(9 downto 0) := "0000000000";
|
||
|
|
||
|
-- i2c
|
||
|
signal multiscale_sda_wen : std_logic;
|
||
|
signal crtc_sda_wen : std_logic;
|
||
|
signal multiscale_scl_wen : std_logic;
|
||
|
signal crtc_scl_wen : std_logic;
|
||
|
|
||
|
BEGIN
|
||
|
|
||
|
--------------------------------------------------------
|
||
| ... | ... | |
|
vsync => vsync_next,
|
||
|
blank => blank_next,
|
||
|
|
||
|
sda => sda,
|
||
|
scl => scl
|
||
|
scl_in => scl_in,
|
||
|
sda_in => sda_in,
|
||
|
scl_wen => multiscale_scl_wen,
|
||
|
sda_wen => multiscale_sda_wen
|
||
|
);
|
||
|
|
||
|
-- Resynchronization logic
|
||
| ... | ... | |
|
video_id_code => crtc_video_id_code,
|
||
|
scaler_select => crtc_scaler_select,
|
||
|
|
||
|
sda => sda,
|
||
|
scl => scl
|
||
|
scl_in => scl_in,
|
||
|
sda_in => sda_in,
|
||
|
scl_wen => crtc_scl_wen,
|
||
|
sda_wen => crtc_sda_wen
|
||
|
);
|
||
|
|
||
|
hdmiav_inst : entity work.hdmi
|
||
| ... | ... | |
|
O_TMDS_H <= shift_r_reg(0) & nshift_r_reg(0) & shift_g_reg(0) & nshift_g_reg(0) & shift_b_reg(0) & nshift_b_reg(0) & shift_clk_reg(0) & nshift_clk_reg(0);
|
||
|
O_TMDS_L <= shift_r_reg(1) & nshift_r_reg(1) & shift_g_reg(1) & nshift_g_reg(1) & shift_b_reg(1) & nshift_b_reg(1) & shift_clk_reg(1) & nshift_clk_reg(1);
|
||
|
|
||
|
-- I2C outputs
|
||
|
sda_wen <= multiscale_sda_wen or crtc_sda_wen;
|
||
|
scl_wen <= multiscale_scl_wen or crtc_scl_wen;
|
||
|
|
||
|
end vhdl;
|
||
|
|
||
|
|
||
| eclaireXL_ITX/scaler/areascale.vhd | ||
|---|---|---|
|
blank : out std_logic;
|
||
|
|
||
|
-- to set up params
|
||
|
sda : inout std_logic;
|
||
|
scl : inout std_logic
|
||
|
scl_in : in std_logic;
|
||
|
sda_in : in std_logic;
|
||
|
scl_wen : out std_logic;
|
||
|
sda_wen : out std_logic
|
||
|
);
|
||
|
END areascale;
|
||
|
|
||
| ... | ... | |
|
bits => 11
|
||
|
)
|
||
|
port map (
|
||
|
scl => scl,
|
||
|
sda => sda,
|
||
|
scl_in => scl_in,
|
||
|
sda_in => sda_in,
|
||
|
scl_wen => scl_wen,
|
||
|
sda_wen => sda_wen,
|
||
|
clk => clock,
|
||
|
rst => not(reset_n),
|
||
|
|
||
| eclaireXL_ITX/scaler/crtc.vhdl | ||
|---|---|---|
|
scaler_select : out std_logic;
|
||
|
|
||
|
-- to set up params
|
||
|
sda : inout std_logic;
|
||
|
scl : inout std_logic
|
||
|
scl_in : in std_logic;
|
||
|
sda_in : in std_logic;
|
||
|
scl_wen : out std_logic;
|
||
|
sda_wen : out std_logic
|
||
|
);
|
||
|
END crtc;
|
||
|
|
||
| ... | ... | |
|
bits => 12
|
||
|
)
|
||
|
port map (
|
||
|
scl => scl,
|
||
|
sda => sda,
|
||
|
scl_in => scl_in,
|
||
|
sda_in => sda_in,
|
||
|
scl_wen => scl_wen,
|
||
|
sda_wen => sda_wen,
|
||
|
|
||
|
clk => clk_pixel,
|
||
|
rst => not(reset_n),
|
||
|
|
||
| eclaireXL_ITX/scaler/multiscale.vhd | ||
|---|---|---|
|
blank : out std_logic;
|
||
|
|
||
|
-- to set up params
|
||
|
sda : inout std_logic;
|
||
|
scl : inout std_logic
|
||
|
scl_in : in std_logic;
|
||
|
sda_in : in std_logic;
|
||
|
scl_wen : out std_logic;
|
||
|
sda_wen : out std_logic
|
||
|
);
|
||
|
END multiscale;
|
||
|
|
||
| ... | ... | |
|
vsync => poly_vsync_next,
|
||
|
blank => poly_blank_next,
|
||
|
|
||
|
sda => sda,
|
||
|
scl => scl
|
||
|
scl_in => scl_in,
|
||
|
sda_in => sda_in,
|
||
|
scl_wen => scl_wen,
|
||
|
sda_wen => sda_wen
|
||
|
);
|
||
|
end generate gen_polyphasic_on;
|
||
|
|
||
| ... | ... | |
|
vsync => area_vsync_next,
|
||
|
blank => area_blank_next,
|
||
|
|
||
|
sda => sda,
|
||
|
scl => scl
|
||
|
scl_in => scl_in,
|
||
|
sda_in => sda_in,
|
||
|
scl_wen => scl_wen,
|
||
|
sda_wen => sda_wen
|
||
|
);
|
||
|
end generate gen_area_on;
|
||
|
|
||
| eclaireXL_ITX/scaler/polyphasicscale.vhd | ||
|---|---|---|
|
blank : out std_logic;
|
||
|
|
||
|
-- to set up params
|
||
|
sda : inout std_logic;
|
||
|
scl : inout std_logic
|
||
|
scl_in : in std_logic;
|
||
|
sda_in : in std_logic;
|
||
|
scl_wen : out std_logic;
|
||
|
sda_wen : out std_logic
|
||
|
);
|
||
|
END polyphasicscale;
|
||
|
|
||
| ... | ... | |
|
bits => 11
|
||
|
)
|
||
|
port map (
|
||
|
scl => scl,
|
||
|
sda => sda,
|
||
|
scl_in => scl_in,
|
||
|
sda_in => sda_in,
|
||
|
scl_wen => scl_wen,
|
||
|
sda_wen => sda_wen,
|
||
|
clk => clock,
|
||
|
rst => not(reset_n),
|
||
|
|
||
Split inout into in and out for i2c, better for internal use in fpga