FPGA视频处理,将有效数据存到ddr以后,输出显示的时候怎么设计还原电路呢?BT.656格式
我用的TVP5150,使用他的AVID和VBLK管脚控制有效数据,以下是我的程序
entity data_output is port ( VPIN_LLC: in std_logic; AVID : in std_logic; VBLK : in std_logic; VPIN : in std_logic_vector(7 downto 0); data : in std_logic_vector(7 downto 0); data_all: out std_logic_vector(7 downto 0); VPOUT_LLC: out std_logic); end data_output;
architecture Behavioral of data_output is signal sel: std_logic_vector(1 downto 0); signal counter_odevity : std_logic_vector (1 downto 0):="00"; begin sel<=AVID & VBLK ; process(VPIN_LLC,sel) begin VPOUT_LLC<= VPIN_LLC; if (sel="10") then if VPIN_LLC'event and VPIN_LLC='0' then if counter_odevity(0)='0' then data_all<="10000000"; counter_odevity<=counter_odevity+'1'; else data_all<=data; counter_odevity<=counter_odevity+'1'; end if; end if; else counter_odevity<="00"; if VPIN_LLC'event and VPIN_LLC='0' then data_all<=VPIN; end if; end if; end process; end Behavioral;
其中,VPIN_LLC是来自5150的27M数据时钟,VPIN是数据,data是从ddr里面取出来的数,是以27M的1/8时钟读出的。
我在AVID和VBLK管脚控制有效时,用计数器单数填充色度为128,双数填充data。但是送往SAA7121以后,从LCD TV上显示的视频
中间有条线,好像,左边的图像跑到了线的右侧。
是不是因为没加水平同步和场同步信号造成的呢?求高手指点
|