HDMI и пиксельные часы |FPGA - PullRequest
       59

HDMI и пиксельные часы |FPGA

0 голосов
/ 04 ноября 2019

Hej,

Я хотел бы получить сигнал HDMI из моего Spartan 7 (FPGA).
Разрешение: 640 x 480 @ 60 Гц с 25,2 МГц для моих пиксельных часов.
Это означает, что у меня будет в общей сложности (с временем гашения) 800 x 525 при 60,0 Гц

Но как монитор узнает, какие часы являются первыми?
В HDMI нет ничего похожего на hsync иvsync как в VGA, верно?

Так, например, если я запускаю свои данные через HDMI и подключаю монитор после этого.
Как tf узнает, что монитор начинает следующий кадр?

Просто4 интересует вот код ->

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;

Library UNISIM;
use UNISIM.vcomponents.all;

entity Takt is
    Port ( 
    CLK100MHZ             : in  STD_LOGIC;      -- Pin R2
    clk_out_p             : out STD_LOGIC;      -- Pin L18 (1)
    clk_out_n             : out STD_LOGIC;      -- Pin L17 (2)
    clk_out_25Mhz         : inout STD_LOGIC;    -- Pin M14 (3)
    clk_out_250Mhz        : out STD_LOGIC;      -- Pin N14 (4)
    controll_LED          : out STD_LOGIC       -- Pin E13 (LED4)
    );

end Takt;

architecture Behavioral of Takt is

    signal locked       : std_logic;

-- init clock
--25.20 MHz    800 x 525 @ 60.000000000 Hz    (exact) <-- go with that
--25.20 MHz    840 x 500 @ 60.000000000 Hz    (exact)
component myclock
port
 (-- Clock in ports
  clk_in1           : in     std_logic;
  -- Clock out ports
  clk_out1          : out    std_logic;
  clk_out2          : out    std_logic;
  -- Status and control signals
  reset             : in     std_logic;
  locked            : out    std_logic
 );
end component;

begin
--Controll LED einschalten
    controll_LED <= '1';

-- Erzeugen der ClockSignale durch pregenerated Code by clockingWizard tool by Xilinx
clock_inst : myclock
   port map ( 
  -- Clock out ports  
   clk_out1 => clk_out_25Mhz,
   clk_out2 => clk_out_250Mhz,
  -- Status and control signals                
   locked => locked,
   reset => '0',
   -- Clock in ports
   clk_in1 => CLK100MHZ
 );

 -- via OBUFDS buffern des signals und aufsplitten auf clk_p und clk_n
OBUFDS_inst : OBUFDS
   generic map (
      IOSTANDARD => "DEFAULT", -- Specify the output I/O standard
      SLEW => "SLOW")          -- Specify the output slew rate
   port map (
      O => clk_out_p,          -- Diff_p output (connect directly to top-level port)
      OB => clk_out_n,         -- Diff_n output (connect directly to top-level port)
      I => clk_out_25Mhz       -- Buffer input 
   );

--nach Xilinx ist DDR nötig wenn aus "externen" Speicher gelesen wird

end Behavioral;

1 Ответ

0 голосов
/ 16 ноября 2019

Когда вы спрашиваете о «первых часах», я предполагаю, что вы имеете в виду первый пиксель изображения. Ваше предположение, что VSYNC или HSYNC не передаются через HDMI, также неверно.

Вы должны рассмотреть как минимум три важных вещи: HDMI, DVI и TDMA .

Ссылка TDMA указывает на Википедию, и вы также найдете там HDMI и DVI. Вы должны понять их, прежде чем пытаться реализовать передатчик HDMI.

В вашем коде отсутствует много таких вещей, как полосы данных, кодеры TDMA, фактический источник данных и т. Д. Возможно, вы захотите подумать только об использованииHDMI IP, который включен в Vivado.

...